3

我正在为轴相机开发和嵌入应用程序。我想在我的项目中使用 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 以将其全部编译成可用的应用程序。

这是我当前的主要生成文件

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
4

1 回答 1

1

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

检查modules/highgui/include/opencv2/highgui.hppmodules/highgui/src/cap.cpp。在第二个中有您正在寻找的大多数功能的程序。类似命名的函数与 OpenCV 使用其他库来处理视频流的事实有关。如果您不打算使用 OpenCV 的图像处理功能,那么查看专门用于图像/视频读取和写入的库可能是一个更好的主意。

于 2013-08-12T08:35:16.970 回答