darknet编译中关联opencv操作
最近在使用darknet-yolov4的项目,但是如果想使用mosic的数据前处理就必须要darknet关联到opencv。在darknet编译中,如果想要设置打开opencv的关联,那么就得稍微折腾一下了~
一、修改Makefile
打开darknet项目文件夹,进行修改
GPU=1
CUDNN=1
CUDNN_HALF=0
OPENCV=1 #就是这个地方需要进行修改,如果想要关联到opencv,就将该栏设置为1
AVX=0
OPENMP=0
LIBSO=0
ZED_CAMERA=0
ZED_CAMERA_v2_8=0
这个时候如果直接make all
的话可能会报错,因为你没有指定opencv编译之后的动态库的地址,darknet编译的过程中可能找不到opencv动态库就会报错~所以,我们需要进行下一步操作
二、链接opencv动态库
查看linux下opencv安装库含路径:
pkg-config opencv --libs
通常来说,如果你在编译opencv的时候默认安装路径,应该都是在/usr/local/lib
这个目录中,所以我们下一步还是要在Makefile中进行修改
ifeq ($(OPENCV), 1)
COMMON+= -DOPENCV
CFLAGS+= -DOPENCV
LDFLAGS+= -L/usr/local/lib -lopencv_ml -lopencv_objdetect -lopencv_imgproc -lopencv_core -lopencv_highgui -lopencv_imgcodecs -lopencv_shape -lopencv_videoio -lopencv_video
# 链接到编译之后的opencv的动态库地址
#LDFLAGS+= `pkg-config --libs opencv4 2> /dev/null || pkg-config --libs opencv`
#COMMON+= `pkg-config --cflags opencv4 2> /dev/null || pkg-config --cflags opencv`
endif
最后,我们就直接make all
就可以编译darknet了~~(opencv就会关联到darknet中)