我正在开发并嵌入轴照相机的应用程序。我想在我的项目中使用opencv。当前,在运行create-package.sh artpec-4之后,我收到错误消息,它跳过了不兼容的库,但是一旦找不到第一个不兼容的库,它就会弯腰。我查找了此问题,一种解决方案是使用新体系结构编译opencv。如果我在项目中包含opencv的源代码,我认为它可以工作。这很可能是最好的解决方案,因为我不知道是否可以在相机上安装opencv。
我已经在下载了opencv源文件

http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.6.1/opencv-2.4.6.1.tar.gz/download

从本质上讲,我想知道从该.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

最佳答案

然后,您将需要core和highgui模块(libopencv_core,libopencv_highgui)。

检查modules/highgui/include/opencv2/highgui.hppmodules/highgui/src/cap.cpp。在第二篇中,提供了您正在寻找的大多数功能的过程。类似的命名函数与事实有关,即OpenCV将其他库用于视频流。如果您不打算使用OpenCV的图像处理功能,那么最好看一下专门从事图像/视频读写的库。

10-06 11:14
查看更多