对于新手来说,安装一个opencv太头疼了,在网上试了许许多多的教程,对于树莓派4来说有些已经过时了,很多教程都是树莓派3的,踩了很多坑才终于给树莓派安装上了opencv,每次编译几个小时,最后出错真的令人抓狂,所以我决定写一个记录来,让朋友们不要像我一样浪费时间折腾好几个小时
本人也是才入门的小白,不对的地方请各位指正。
##创建时间: 2019年9月29日
###作者: 创新实验室——GL
##版本: v1.0
##上次修改时间: 无
##联系作者: 无
##验证平台: 树莓派4 (操作系统为Raspberry)(存储卡为32G)
第一步先更换源,更新下载更快;
①在终端输入以下指令
sudo nano /etc/apt/sources.list
用#注释掉原文件内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
这里我用的是是清华源,在后面若下载出错换中科大源试试(Ps:中科大的源地址http://mirrors.ustc.edu.cn/raspbian/raspbian/
对应替换就行)
注意:网上很多是 stretch ,这是以前的版本 , 现在已经改成 buster了,之前博主就是因为这个无限黑屏。
所以如果你的树莓派版本较新的话就用我这个代码就行,老版本的自行备份测试。
如图:
然后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退出
③使用命令更新软件源列表,同时检查编辑是否正确。再更新软件
sudo apt-get update
sudo apt-get upgrade
必须使用16G以上的卡,最好是class10以上,实测8G class6卡安装到35%就爆满了,推算安装完成要4.6G左右。
然后扩大文件系统。因为,用SD卡安装完系统后一大部分空间实际是未被分配的
使用命令
sudo raspi-config
然后选择第七个
然后选择第一个回车,会让你重启树莓派,选择立即重启
增加交换空间以避免因内存问题导致的编译挂起
输入命令
sudo nano /etc/dphys-swapfile
将 CONF_SWAPSIZE 值从默认值更改 100 为 1024 :
如图
然后ctrl+o保存,点回车确认保存,然后ctrl+x退出,并运行以下命令以使更改生效:
sudo /etc/init.d/dphys-swapfile restart
①安装OpenCV的相关工具
sudo apt install build-essential cmake git pkg-config libgtk-3-dev libcanberra-gtk*
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev
sudo apt install libjpeg-dev libpng-dev libtiff-dev gfortran openexr libatlas-base-dev opencl-headers
sudo apt install python3-dev python3-numpy libtbb2 libtbb-dev libdc1394-22-dev
PS:如果出现(无法定位软件包)啥的,换个源更新一下试试,建议试试中科大的源,更新快。因为软件一直在更新,不知道此刻以后会出现什么奇奇怪怪的版本,具体怎么怎么换上面也写了,只是网站不一样,百度一大堆
②创建一个新目录并从 Github 克隆 OpenCV 和 OpenCV contrib 存储库:
mkdir ~/opencv_build && cd ~/opencv_build
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
因为Github服务器不在国内,并且不支持断点续传,偶尔抽风很正常,克隆失败多半就是克隆过程中抽风了,多试几次,实在不行就自己上墙,下载好了再拷贝到树莓派上,别再私信我这种问题哥哥们,百度!百度!百度!百度不了就谷歌一下
在撰写本文时, GitHub 存储库中的默认版本是 4.1.1 版。如果你想安装 OpenCV 的旧版本,导航既 opencv 和 opencv_contrib 目录,并运行 git checkout
克隆存储库后,创建一个临时构建目录,然后切换到该目录:
mkdir -p ~/opencv_build/opencv/build
cd ~/opencv_build/opencv/build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D ENABLE_NEON=ON \
-D ENABLE_VFPV3=ON \
-D BUILD_TESTS=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules \
-D BUILD_EXAMPLES=OFF ..
“\” 代表将代码延续到下一行
输出结果如下所示:
...
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/opencv_build/opencv/build
运行
make -j4
这个过程大概需要两三个小时,耐心等到,不要用树莓派做其他事
编译结束了会出现下面这个结果
...
[100%] Linking CXX shared module ../../lib/python3/cv2.cpython-35m-arm-linux-gnueabihf.so
[100%] Built target opencv_python3
如果编译在某些时候失败,由于资源不可用,请 make 再次运行该命令,该过程将从停止的位置继续。
成功后安装已编译的 OpenCV 文件:
sudo make install
时间很快,结果如下
...
-- Installing: /usr/local/bin/opencv_version
-- Set runtime path of "/usr/local/bin/opencv_version" to "/usr/local/lib"
最后检查opencv安装成功与否
C++库:
pkg-config --modversion opencv4
结果
4.1.1
Python库:
python3 -c "import cv2; print(cv2.__version__)"
结果
4.1.1-pre
大功告成!!!!!
如果 SD 卡上没有足够的可用空间,请删除源文件:
rm -rf ~/opencv_build
大量交换使用可能会损坏您的 SD 卡。将交换空间更改回原始大小:
sudo nano /etc/dphys-swapfile
将 CONF_SWAPSIZE 值改回 100
保存文件并激活更改:
sudo /etc/init.d/dphys-swapfile restart
开始使用opencv吧!