近日安装openCV遇到了不少坑,记个笔记,也为了可以帮助到其他人,因为我也参考了其他大佬的踩坑记录。
笔记记录时间为2020年六月四日。树莓派的系统用的是2020-05-27-raspios-buster-full-armhf。树莓派用的是树莓派3b。安装的openCV的版本是3.4.3。
首先要注意,要使用16G及以上的内存卡,使用8G会内存不够用。在安装opencv前不要进行本地化设置。因为一旦进行本地化设置在安装openCV的需要的工具时会报错,缺少库,而且无限连锁。只需要下载原版系统,不要去更新系统,也不要更换软件源,同样不要进行任何的设置。直接进行openCV的相关设置。
上文说到不要用8G卡,现在进行扩展文件系统,本文中用的系统默认扩展了,因为系统的不同性,还是建议先用df命令查看一下储存卡可用空间,保险起见应预留6G的空间。扩展方法为:使用命令:sudo raspi-config,7 高级选项,A1 拓展文件系统,extend到16G。
下面开始安装相关软件。其实这个安装到处都是。我还是在这里抄过来写一下。
// 安装build-essential、cmake、git和pkg-config
sudo apt-get install build-essential cmake git pkg-config
// 安装jpeg格式图像工具包
sudo apt-get install libjpeg8-dev
// 安装tif格式图像工具包
sudo apt-get install libtiff5-dev
// 安装JPEG-2000图像工具包
sudo apt-get install libjasper-dev
// 安装png图像工具包
sudo apt-get install libpng12-dev
//安装视频I/O包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
//安装gtk2.0
sudo apt-get install libgtk2.0-dev
//优化函数包
sudo apt-get install libatlas-base-dev gfortran
//安装python开发包(根据情况选择安装吧)
sudo apt-get install python-dev python3-dev
到这里依赖包就全部安装好了。你可以等等在存一下系统。
下面开始openCV的正式安装
// 下载OpenCV
wget -O opencv-3.4.3.zip https://github.com/Itseez/opencv/archive/3.4.3.zip
// 解压OpenCV
unzip opencv-3.4.3.zip
// 下载OpenCV_contrib库:
wget -O opencv_contrib-3.4.3.zip https://github.com/Itseez/opencv_contrib/archive/3.4.3.zip
// 解压OpenCV_contrib库:
unzip opencv_contrib-3.4.3.zip
注:前辈的经验OpenCV_contrib请大家使用wget,亲测直接到Github下载zip文件的话,会有编译问题(个人私货:其实这样也会报错,后面附解决方法)
继续进行
进入目录
cd opencv-3.4.3
// 新建release文件夹
mkdir release
// 进入release文件夹
cd release
这里是需要我们有权限的文件夹
设置cmake编译参数,安装目录默认为/usr/local ,注意参数名、等号和参数值之间不能有空格,但每行末尾“\”之前有空格,参数值最后是两个英文的点(注意!如果在root用户下执行cmake命令,请将OPENCV_EXTRA_MODULES_PATH的值改为绝对路径,如:/home/pi/opencv_contrib-3.4.3/modules)
/** CMAKE_BUILD_TYPE是编译方式
* CMAKE_INSTALL_PREFIX是安装目录
* OPENCV_EXTRA_MODULES_PATH是加载额外模块
* INSTALL_PYTHON_EXAMPLES是安装官方python例程
* BUILD_EXAMPLES是编译例程(这两个可以不加,不加编译稍微快一点点,想要C语言的例程的话,在最后一行前加参数INSTALL_C_EXAMPLES=ON \)**/
sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=/home/pi/opencv_contrib-3.4.3/modules \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON ..
成功后你可以保存一下系统了(非必要,我只是怂)。没成功删除上述文件夹在来一遍。换个手机WiFi还是可以的。其实没必要把编译参数设置过多,越多越容易错。血泪史啊这样就是失败了
开始编译
sudo make -j4(这是四线程编译速度很快但是在34%左右的时候报错,但是可以先编译到34%嘛。小弟才疏学浅现在还没解决这个问题,然后用单线程编译,这里时间过长建议直接用屏幕来)
编译完成安装
sudo make install
更新动态链接库
sudo ldconfig
这里就安装完成了,用命令确认一下
python
import cv2
cv2.__version__
错误解决引用大佬
1.在编译到88%左右时可能会出现openc_contrib 提示缺少boostdesc_bgm.i文件而出错
这个是由于官方所给的那两个包不全,(没有此错误的可以忽略)
解决方法如下:
可以在我的百度云盘里下载然后将所有带i结尾的文件全部都拷贝到 opencv_contrib/modules/xfeatures2d/src/ 路径下即可
树莓派安装opencv时丢失的文件:
链接:https://pan.baidu.com/s/1xi6_5NuTFiP4SD649FgIJw
提取码:mbsj
然后继续上面的编译操作即可
2.在编译到98%左右时可能会出现fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录的错误标志 (没有此错误的可以忽略)
这个是由于之前在树莓派的python2环境下安装了opencv所致
解决方法如下:
将/home/pi/opencv_contrib-3.4.4/modules/xfeatures2d/include/opencv2目录下的xfeatures2d文件夹和xfeatures2d.hpp文件复制粘贴到
/home/pi/opencv-3.4.4/modules/stitching/include/opencv2目录下即可解决
参考来源https://blog.csdn.net/weixin_43308627/article/details/97814927https://blog.csdn.net/leaves_joe/java/article/details/67656340