第一次编译之后,测试opencv_example不成功,又重新卸载了再装了一次,成功了,简单记录一下。
下载opencv4.6以及opencv_contrib-4.6.0
安装命令博客1写得也比较详细
由于第一次装的时候可能把依赖都装上了,这里一次成功。
# 终端进入opencv4.6.0的文件夹
mkdir build
cd build
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. -D WITH_OPENMP=ON
sudo make -j12
sudo make install
配置环境
sudo gedit /etc/ld.so.conf
# 添加include /usr/local/include
sudo gedit /etc/ld.so.conf.d/opencv.conf
# 添加/usr/local/include
sudo ldconfig
sudo gedit /etc/bash.bashrc
# 添加下面的内容,添加时去掉#注释。
#PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
#export PKG_CONFIG_PATH
source /etc/bash.bashrc
查看版本,显示4.6.0
pkg-config opencv --modversion
第一次编译可能出现找不到pkg-config情况,参考https://blog.csdn.net/PecoHe/article/details/97476135
cd /usr/local/lib
sudo mkdir pkgconfig
cd pkgconfig
sudo touch opencv.pc
sudo gedit opencv.pc
输入以下内容,保存,即可。
prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
Name: opencv
Description: The opencv library
Version:4.0.1
Cflags: -I${includedir}/opencv4
Libs: -L${libdir} -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core
~
正确输出版本号,应该是安装成功了,测试参考博客2
# 进入/opencv-4.6.0/samples/cpp/example_cmake文件夹下
mkdir build
cd build
cmake ..
make
这次make没有报错了
# 进入/opencv-4.6.0/samples/cpp/example_cmake/build文件夹下
./opencv_example
显示Hello OpenCV
2023.9.19更新,因为要使用SURF特征匹配,于是编译opencv_contrib,记录一下。
注:编译的是opencv3.4.12和opencv_contrib-3.4.12,两者版本需一致。
使用SURF的时候出现fatal error: opencv2/xfeatures2d.hpp: No such file or directory
参考:https://github.com/udacity/SFND_2D_Feature_Tracking/issues/3
开始编译contrib
cd ~/lib/opencv3.4.12
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. -D OPENCV_ENABLE_NONFREE=ON -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.12/modules -D WITH_GTK=ON ..
出现下载boostdesc_bgm.i文件失败
参考:https://download.csdn.net/download/qq_15985873/84597905
- 百度网盘链接:https://pan.baidu.com/s/1ZjOxzq_gUk-qZmurmgmoqQ提取码:w99y
- 本文件集可以拷贝到opencv_contrib/modules/xfeatures2d/src/目录下,然后修改opencv_contrib/modules/xfeatures2d/cmake 文件夹里download_boostdesc.cmake和download_vgg.cmake的下载路径(打开文件进行修改),将http路径修改为本地路径"/home/juling/lib/opencv-3.4.12/opencv_contrib-3.4.12/modules/xfeatures2d/src/"(例如boostdesc_bgm.i等文件放置在该文件夹)
继续编译,出现下载face_landmark_model.dat文件
参考博客:https://codeleading.com/article/80873091034/、https://blog.csdn.net/pursuit_zhangyu/article/details/115128356
下载链接:face_landmark_model.dat下载链接
修改/modules/face/CMakeLists.txt中的http地址为本地文件夹,如下所示:
cmake通过
sudo make -j8
在97%的时候出现fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or directory 52 | # include "opencv2/xfeatures2d/cuda.hpp"
打开报错文件match.hpp,将第52行修改如下:
#include "/home/juling/lib/opencv-3.4.12/opencv_contrib-3.4.12/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp"
重新cmake和make,出现precomp找不到cuda.hpp文件的错误。
修改91行,如下:
重新cmake和make,出现match.cpp找不到xfeatures2d.hpp文件的错误。
在cmakeLists.txt中添加
INCLUDE_DIRECTORIES("/home/juling/lib/opencv-3.4.12/opencv_contrib-3.4.12/modules/xfeatures2d/include")
现在cmake和make之后,编译成功了。
执行sudo make install
即可。
至此opencv_contrib安装成功。