Opencv库编译总不过,试试这个方法!

原创
07/06 17:26
阅读数 135

OpenCV(Open Source Computer Vision)是一个开放源代码的计算机视觉库,它提供了一系列函数和算法,用于处理图像和视频。通过使用OpenCV,您可以进行各种计算机视觉任务,例如图像处理、对象识别、目标追踪、人脸检测和机器学习等。它提供了底层图像处理功能,以及高级功能和模块,如特征提取、边缘检测、图像分割和物体测量等。

当V853需要进行图像的预处理操作时,涉及到使用opencv库中的相关接口和函数。所以如果要基于853进行模型的输入预处理或者输出后处理操作时,就不可避免的要依赖到opencv库。

先获取GitHub中的opencv源码:
https://github.com/opencv/opencv
https://github.com/opencv/opencv_contrib

进入目录下,创建build目录:

mkdir build  
cd build/  

运行cmake指令配置参数生成Makefile文件:

cmake -D CMAKE\_BUILD\_TYPE=Release -D CMAKE\_INSTALL\_PREFIX=/usr/local -D OPENCV\_EXTRA\_MODULES\_PATH=/xxxxx/opencv/opencv\_contrib/modules ..  

当然,如果需要将库外置不编入环境的话可以修改CMAKE_INSTALL_PREFIX的值,直接改为对应路径即可。
选择库的相关指令(指定编译/不编译某些库,优化opencv库大小):

指定编译opencv_core库:

-DBUILD\_opencv\_core=ON  

指定不编译opencv_hdf库:

-DBUILD\_opencv\_hdf=OFF  

使用make指令进行编译:

make -j4  

make完成并不代表结束,还需要生成opencv库使用。

编译完成后,加上install命令,将其加载/注册到usr文件夹中,这样每次编译 就不用使用一整个opencv库/包了。

make install  

当编译可执行文件需要链接opencv库时,可以编写一个cmake来编译文件:

\# 声明要求的 cmake 最低版本  
cmake\_minimum\_required( VERSION 2.8 )

\# 声明一个 cmake 工程  
project( test )

#添加OPENMP库  
FIND_PACKAGE( OpenMP REQUIRED)  
if(OPENMP_FOUND)  
message("OPENMP FOUND")  
set(CMAKE\_C\_FLAGS "${CMAKE\_C\_FLAGS} ${OpenMP\_C\_FLAGS}")  
set(CMAKE\_CXX\_FLAGS "${CMAKE\_CXX\_FLAGS} ${OpenMP\_CXX\_FLAGS}")  
set(CMAKE\_EXE\_LINKER\_FLAGS "${CMAKE\_EXE\_LINKER\_FLAGS} ${OpenMP\_EXE\_LINKER_FLAGS}")  
endif()

#添加OPENCV库  
#指定OpenCV版本,代码如下  
##find_package(OpenCV 3.3 REQUIRED)  
#如果不需要指定OpenCV版本,代码如下  
set(OpenCV\_DIR ${CMAKE\_SOURCE_DIR}/usr/lib/cmake/opencv4)  
find_package(OpenCV REQUIRED)

#添加OpenCV头文件  
include\_directories(./ ${OpenCV\_INCLUDE_DIRS})

\# 添加一个可执行程序  
\# 语法:add_executable( 程序名 源代码文件 )  
add\_executable(main ${DIRSRCS} ${NPULIB\_DIRSRCS})

\# 将库文件链接到可执行程序上  
target\_link\_libraries(main ${OpenCV\_LIBS} ${VIP\_LIBS} -lstdc++ -lpthread -lrt -lm -ldl)  

可以看到,该cmake链接了opencv库,

set(OpenCV\_DIR ${CMAKE\_SOURCE_DIR}/usr/lib/cmake/opencv4)  

该方法通过链接opencv库中的cmake文件然后来找到对应的opencv包,保证主程序能够顺利调用。

可以在github上下载yolov7处理代码,链接库进行验证。如若cmake生成makefile正常,make编译也正常,成功执行例程过后,opencv库成功生成

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部