我正在为 Axis 相机开发和嵌入应用程序。我想在我的项目中使用 opencv。目前,在运行 create-package.sh artpec-4 之后,我收到了它正在跳过不兼容库的错误,然后一旦找不到第一个不兼容的库,它就会弯腰。我查了一下这个问题,一个解决方案是使用新架构编译 opencv。如果我在我的项目中包含 opencv 的源代码,我认为它可以工作。这很可能是最好的解决方案,因为我不知道我是否可以在相机上安装 opencv。 我已经在
下载了 opencv 源文件基本上,我想知道我需要那个 .rar 中的哪些文件,我应该把它们放在哪里,以及如何更改 makefile 以将其全部编译成一个可用的应用程序。
这是我当前的主要makefile
AXIS_USABLE_LIBS = UCLIBC GLIBC
include $(AXIS_TOP_DIR)/tools/build/Rules.axis
PROGS = myapp
CFLAGS += -Wall -g -O2
#CFLAGS += -I/usr/include/opencv -I/usr/include/opencv2
#LIBS += -L/usr/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann
LDFLAGS += -lnet_http -lcapture
ifneq ($(AXIS_OPT_DEBUG),y)
ifneq ($(AXIS_OPT_STATIC),y)
# Strip the binaries when building unless debug or static
# $(CXX) $(LDFLAGS) $^ $(LDLIBS) -o $@ `pkg-config --cflags --libs opencv`
LDFLAGS += -s
endif
endif
SRCS = myapp.cpp
OBJS = $(SRCS:.cpp=.o)
all: $(PROGS)
$(PROGS): $(OBJS)
$(CXX) $^ -o $@ $(LDFLAGS) $(LDLIBS) -L/usr/lib -lopencv_core -lopencv_imgproc -lopencv_calib3d -lopencv_video -lopencv_features2d -lopencv_ml -lopencv_highgui -lopencv_objdetect -lopencv_contrib -lopencv_legacy
$(OBJS) : $(GENERATED_H)
# Install the package on the camera
install: $(PROGS)
create-package.sh
install-onto-target.sh
clean:
rm -f $(PROGS) *.o core
最佳答案
然后您将需要核心和 highgui 模块(libopencv_core、libopencv_highgui)。
检查 modules/highgui/include/opencv2/highgui.hpp和 modules/highgui/src/cap.cpp .在第二个中有您正在寻找的大多数功能的程序。类似命名的函数与事实有关,即 OpenCV 使用其他库来处理视频流。如果您不打算使用 OpenCV 的图像处理功能,那么最好看看专门从事图像/视频读写的库。
关于opencv - 使用opencv编译嵌入式 Axis 相机软件。进行文件更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18167115/