自学内容网 自学内容网

ubuntu/debian中安装OpenCV并且配置OpenCV开发环境

编译OpenCV

本文想编译第三方的模块,尤其时aruco模块以及sfm(structure from motion)模块,所以需要同时编译contrib代码。

由于sfm模块依赖其他一些库,这些库如果不提前安装,最后sfm不会编译
需要安装下面一些,sfm文档中说也需要按照ceres库,但是好像不安装也没有关系。

sudo apt-get install libeigen3-dev libgflags-dev libgoogle-glog-dev

先下载OpenCV的源码,本文用的基础源码版本4.10.0, 扩展源码contrib源码版本4.10.0。注意版本要一致。

linux环境最好下载一个【科学上网工具】,因为编译代码时会下载一些东西,如果下载失败有可能编译不成功。

我比较喜欢使用cmake-gui工具,比较直观。先选择OpenCV 4.10.0的文件夹作为源码文件夹,然后新建一个build文件,作为生成文件夹。先第一次点击configure。

然后在变量配置中,OPENCV_EXTRA_MODULES_PATH,将OpenCV_Contrib_4.10.0里面的modules(注意是modules文件夹)选择。

为了能快速编译完成,可以对
BUILD_TESTS
BUILD_PERF_TESTS 取消勾选
BUILD_opencv_python_tests

勾选
OPENCV_ENABLE_NONFREE 编译生成那些并不免费的库(比如以前的SIFT,现在过了产权期了)

选择
CMAKE_INSTALL_PREFIX选择你要安装的路径,建议不要安装在系统文件夹,这样可以让多个OpenCV版本可以共存。

再次点击configure。
点击generate.

再刚刚新建的build文件夹中用
make -j8 (-j后面接一个数字,表示用多少个线程进行编译。通过命令nproc查询系统有多少个线程)
编译成功后
make install (如果是系统路径,需要sudo make install)

配置OpenCV

再Linux中,我使用cmake来配置OpenCV,因为上面我将OpenCV安装到了个人的路径下,cmake肯定找不到,因此需要配置OpenCV的一个路径OpenCV_DIR

-DOpenCV_DIR=“opencv安装路径/lib/cmake/opencv4”
opencv安装路径也就是上面CMAKE_INSTALL_PREFIX指定的

然后
在CMakeLists.txt中首先要查找OpenCV
写作:
find_package(OpenCV CONFIG REQUIRED PATHS ${OpenCV_DIR}) (一般不需要 写后面的PATHS ${OpenCV_DIR}, 我这样写是防止系统中还有一些其他的OpenCV版本)

然后再链接就行(不需要设置include路径,比如将OpenCV_INCLUDE_DIRS添加到头文件路径中)
target_link_libraries(target_name PRIVATE fmt::fmt ${OpenCV_LIBS})


原文地址:https://blog.csdn.net/WhoisPo/article/details/140013497

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!