网上opencv安装有几种方法:pip install一键安装、编译安装、安装包一键安装,在尝试了前面两种安装方法,经历无数次刷系统、换源和改配置文件后,我果断用最后一种方法。
方法一、编译安装opencv3
1、系统安装和配置
该方法配置环境为:
树莓派3B
16G储存卡
2、更换更新源和下载源(很重要的一步,不同系统的源可能不一样)
这一步弄错可能会出现树莓派安装软件包不满足依赖关系问题
sudo nano /etc/apt/sources.list
在第一行前输入 # 注释系统默认源
在最后一行输入以下代码更换为中科大镜像
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
按ctrl+o再按回车键再按ctrl+x进行保存退出
3、更新软件系统
sudo apt-get update
sudo apt-get upgrade
4、扩展根目录空间
在控制终端输入
sudo raspi-config
通过键盘上下键控制,选择Advanced Options进入,然后选择Expand Filesystem,将根目录扩展到整个SD卡,充分利用SD卡的存储空间。如果不进行这一步,后续命令会出现卡死。设置完成后退出设置界面,重启树莓派。
然后sudo reboot重启
5、设置SWAP
OpenCV安装编译过程中数据吞吐较大,为了防止系统卡死,需要设置合适的交换空间。
sudo nano /etc/dphys-swapfile
将 CONF_SWAPSIZE 的值修改成2048
然后,重新启动 dphys-swapfile 文件服务:
sudo /etc/init.d/dphys-swapfile restart
输入free -h查看是否设置成功
6、安装python3下的OpenCV
(1)安装Python科学计算库numpy
sudo pip3 install numpy
(2)安装OpenCV所需的库
// 安装build-essential、cmake、git和pkg-config(cmake开发人员工具)
sudo apt-get install build-essential git cmake pkg-config -y
//常用图像工具包安装
sudo apt-get install libjpeg8-dev -y
sudo apt-get install libtiff5-dev -y
sudo apt-get install libjasper-dev -y
sudo apt-get install libpng12-dev -y
//常用视频库安装
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y
//GTk2.0安装
sudo apt-get install libgtk2.0-dev -y
//安装OpenCV数值优化函数包
sudo apt-get install libatlas-base-dev gfortran -y
(3)下载opencv3.4.3和opencv_contrib3.4.3包
为了方便后期管理,我们把文件下载安装到Downloads文件夹
cd Downloads
然后利用wget命令从网络下载opencv3.4.3和opencv_contrib3.4.3
wget -O opencv-3.4.3.zip https://github.com/Itseez/opencv/archive/3.4.3.zip
wget -O opencv_contrib-3.4.3.zip https://github.com/Itseez/opencv_contrib/archive/3.4.3.zip
解压这两个文件
unzip opencv-3.4.3.zip
unzip opencv_contrib-3.4.3.zip
(4)设置CMAKE编译参数
为了正确编译OpenCV,需要对cmake参数进行设置。
①在opencv-3.4.3文件夹下创建build文件夹以存放编译临时文件
cd ~/Downloads/opencv-3.4.3
mkdir build
cd build
②设置cmake编译参数
//下述参数中,INSTALL_PYTHON_EXAMPLES、INSTALL_CXX_EXAMPLES、BUILD_EXAMPLES分别是安装python例程、安装C例程以及编译例程,这三个可以不加,这样编译速度快一点,根据需要自行选择。
sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=/home/pi/Downloads/opencv_contrib-3.4.3/modules \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_CXX_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON ..
③配置成功的界面如下图所示
(5)备份build文件夹
下一步我们会利用build文件夹里的文件进行make,一旦失败还需要重新进行cmake参数设置。为了节省时间,对build文件夹进行备份。
cd …
cp -r build ./build1
(6)编译OpenCV3
进入build文件夹进行编译,这一步耗时较长(大约四五个小时)。建议在树莓派环境下进行,防止ssh断开导致编译失败。同时树莓派要保证供电充足,且最好不要进行其他操作。
cd ~/Downloads/opencv-3.4.3/build
//使用最多4线程编译,加快编译速度。同时保存编译信息到make.log,方便离线查看编译进度
sudo make -j4 2>&1 | tee make.log
如果看到进度编译到100%,那么说明编译安装成功。
(7)安装OpenCV3
编译完成后即可进行最后一步——安装。
//安装OpenCV3
sudo make install
//安装动态链接库
sudo ldconfig
(8)恢复SWAP空间
安装完成后需要把swap恢复系统默认,然后重新启动服务。否则大量的数据交换会导致内存卡损坏。
sudo nano /etc/dphys-swapfile
CONF_SWAPSIZE = 100
sudo /etc/init.d/dphys-swapfile restart
7、配置OpenCV
(1)配置opencv.conf
为了保证个别语言的编译要求,需要对opencv.conf文件进行配置
sudo nano /etc/ld.so.conf.d/opencv.conf
在打开的文件最后两行键入以下内容
//其中,/usr/local为默认安装路径,根据实际情况进行修改即可
/usr/local/lib
更新动态链接
sudo ldconfig
(2)修改bash.bashrc 配置文件
//打开bash.bashrc
sudo nano /etc/bash.bashrc
//最后两行加入以下代码
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
//重启树莓派
sudo reboot
(3)检查是否安装完成
python3
import cv2
cv2.version
如果出现如图所示的结果,则说明安装成功
也可以通过运行下samples生成一个图像来检测OpenCV是否工作正常
8、编译中可能会出现的问题(没出现忽略)
(1)cmake环境配置显示成功,但是一编译就报错 CMake Error: Cannot open file for write: /home/pi/Downloads/opencv-3.4.3/build/CMakeFiles/gen-pkgconfig.dir/depend.make.tmp CMake Error: : System Error: Permission denied make[2]: *** [CMakeFiles/gen-pkgconfig.dir/build.make:76:CMakeFiles/gen-pkgconfig.dir/depend] 错误 2 make[1]: *** [CMakeFiles/Makefile2:72:CMakeFiles/gen-pkgconfig.dir/all] 错误 2 make: *** [Makefile:163:all] 错误 2
这是python版本的原因,系统自带的是python3.5,要换成python3.7
(2)编译过程中可能会报错**:fctal error: ImfChromaticities.h: 没有那个文件或目录。**输入以下代码可以解决
sudo apt-get install libopenexr-dev
后面还会出现缺各种依赖,都是缺啥安装啥。
(3)编译18%左右可能会报错fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录。这是由于我们之前安装了python2环境下的opencv导致的,复制两个文件即可解决:将/home/pi/Downloads/opencv_contrib-3.4.3/modules/xfeatures2d/include/opencv2目录下的xfeatures2d文件夹和xfeatures2d.hpp文件复制粘贴到/home/pi/Downloads/opencv-3.4.3/modules/stitching/include/opencv2目录下即可文件也可以从链接中下载,然后拷贝进正确的路径即可:链接:https://share.weiyun.com/tMPeaqGP 密码:ye4ezy
(4)在编译到81%左右的时候,可能会报错Built target opencv_tracking [Makefile:163 : all] 错误2(或者其他类似的错误)这主要是因为下载的包不完整导致的,把缺少的文件拷贝到:home/pi/Downloads/opencv_contrib-3.4.3/modules/xfeatures2d/src/下即可缺少的文件为:
boostdesc_bgm.i
boostdesc_bgm_bi.i
boostdesc_bgm_hd.i
boostdesc_binboost_064.i
…缺失文件下载链接:https://share.weiyun.com/6gaKPUXf 密码:c6myk6
(5)把刚刚自己下载拷贝的文件boostdesc_binboost_064.i在树莓派里打开,在源码最后加上“};”,不然会报错:In file included from /home/pi/Downloads/opencv_contrib-3.4.0/modules/xfeatures2
d/src/boostdesc.cpp:696: /home/pi/Downloads/opencv_contrib-3.4.0/modules/xfeatures2d/src/boostdesc_binboo
st_64.i:1059:1: note: to match this ‘{’
(6)安装cmake存在的问题,报错:mongodb-org-server : Depends: libcurl3 (>= 7.16.2) but it is not going to be installed
解决方法:链接:https://blog.csdn.net/u010919083/article/details/100556585
方法二、(安装包一键安装)来源于B站
系统一定要用64位系统,不然会出幺蛾子。可以用getconf LONG_BIT命令查看自己的系统是32位和64位。
1、系统安装和配置
该方法配置环境为:
树莓派3B
16G储存卡
2、换源
在终端输入以下指令
sudo nano /etc/apt/sources.list
用#注释掉原文件内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/debian buster main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian-security/ buster/updates main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian buster-updates main contrib non-free
#deb-src http://mirrors.tuna.tsinghua.edu.cn/debian buster main contrib non-free
#deb-src http://mirrors.tuna.tsinghua.edu.cn/debian-security/ buster/updates main contrib non-free
#deb-src http://mirrors.tuna.tsinghua.edu.cn/debian buster-updates main contrib non-free
然后ctrl+o保存,点回车确认保存,然后ctrl+x退出
在终端输入以下指令
sudo nano /etc/apt/sources.list.d/raspi.list
用#注释掉原文件内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
#deb-src http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
然后ctrl+o保存,点回车确认保存,然后ctrl+x退出
3、下载opencv包
该安装包为B站UP主团队制作的一键安装安装包
链接: https://pan.baidu.com/s/1rgSOikk2NsT7IIl-0WfP_A 提取码: ca17
4、用ftp软件或者用U盘把下载的包上传到家(/home/pi)目录下面。
5、树莓派登陆终端,在家目录用下面指令安装
sudo apt install ./ opencv-4.5.1-org.pifan_20210116-1_arm64.deb
最终安装的OpenCV版本为OpenCV4.5.1。可参考视频:https://www.bilibili.com/video/BV1fv411Y71G
方法三、树莓派装好opencv3的原版系统镜像
实在安装不上时可以用别人装好opencv3的原版系统镜像,链接:https://pan.baidu.com/s/1EwM0vvsjLag7LVdMDW5wTA
提取码:ssb0
树莓派系统密码:1122
具体如何备份系统可以参考博文:https://www.ncnynl.com/archives/201607/232.html
参考文章:
https://blog.csdn.net/Hankerchen/article/details/103510024
https://blog.csdn.net/zuoguaishouxiao/article/details/106496323
https://blog.csdn.net/fightingboom/article/details/82215362
https://blog.csdn.net/leaves_joe/article/details/67656340
https://blog.csdn.net/weixin_43287964/article/details/101696036