项目介绍
OpenCV是一个基于BSD许可发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。而树莓派作为一款非常流行的开发学习平台,很多开发者的人工智能项目都基于opencv,然而,树莓派的软件源一般提供的都是opencv3.4.0这种老版本,这个项目将分享如何在树莓派上源码编译并安装指定版本的opencv。
说在前面
即便是最新的树莓派4B代(4G)版本,在一切顺利的情况下,编译安装完成本项目也大概需要5个小时以上,所以如果没有特殊要求可以考虑用清华源(其他软件源不太清楚是否有对应的软件包)直接安装opencv,关于如何换清华源不多赘述,请自行百度。换源之后,命令行依次执行
sudo apt update
sudo apt install python3-opencv
1.环境配置
(建议SSH远程连接树莓派操作,省去自己输入命令的烦恼)
现在你假设已经正确更换软件源,包括apt和pip,不换源在环境配置这一步可能会花费很多没必要花费的时间
对于一些博主进行扩容的操作思路,本人并没有进行所谓的扩容,且没有出现卡死的现象,所以本教程没有扩容这一步
安装opencv环境依赖,依次执行下面命令
sudo apt update && sudo apt install -y cmake g++ wget unzip
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
sudo apt-get install libgtk2.0-dev -y
sudo apt-get install libatlas-base-dev gfortran -y
2.下载源码并解压
(建议SSH远程连接树莓派操作,省去自己输入命令的烦恼)
opencv源码地址:
https://github.com/opencv/opencv/releases
找到自己想要的源码文件,我以4.5.4版本为例,此处下载源码有两种思路,一种是在windows电脑上下载好并通过FTP等上传给树莓派使用,另外一种是直接在树莓派使用wget命令下载源码,操作步骤如下:
右键下图所示的Source code(zip),选择复制链接地址,在SSH客户端使用下面命令
wget https://github.com/opencv/opencv/archive/refs/tags/4.5.4.zip
等待下载完成!
命令行输入以下命令解压opencv源码
unzip 4.5.4.zip
同理,下载对应版本的opencv_contrib
opencv_contrib源码地址:
https://github.com/opencv/opencv_contrib/tags
找到对应版本的opencv_contrib,复制下载链接,命令行输入
wget https://github.com/opencv/opencv_contrib/archive/refs/tags/4.5.4.zip
命令行输入以下命令解压opencv_contrib源码
unzip 4.5.4.zip.1
3.设置编译参数
(建议SSH远程连接树莓派操作,省去自己输入命令的烦恼)
以4.5.4版本为例:(其他版本请适当修改编译参数)
命令行依次输入一下命令
cd opencv-4.5.4
mkdir build && cd build
需要适当修改编译参数的地方来了,各战斗部门注意,复制下面的所有命令之后,别着急回车执行,细看后面说明部分
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=/home/pi/opencv_contrib-4.5.4/modules -D BUILD_EXAMPLES=ON -D WITH_LIBV4L=ON PYTHON3_EXECUTABLE=/usr/bin/python3.9 PYTHON_INCLUDE_DIR=/usr/include/python3.9 PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.9m.so PYTHON3_NUMPY_INCLUDE_DIRS=/home/pi/.local/lib/python3.9/site-packages/numpy/core/include ..
可能需要修改参数的部分说明:
因选择opencv版本不同,则需要修改编译参数中的版本信息参数
因opencv以及opencv_crntrib下载目录没放在/home/pi中,则需要修改对应路径部分的参数
与示例所用系统版本不匹配造成需修改参数,例如最新的bullseye系统是基于Debian11,python3采用3.9版本,而上一代系统buster系统python3则是采用python3.7版本,所以如果是buster系统的小伙伴需要修改多个参数
检查以上内容无误后,再回车执行,这个过程大约会花费10分钟
4.编译及安装
(建议通过VNC等远程桌面操作)
下面所有的命令执行的目录是在上一步创建的/build目录下,如果第三步到第四步有更换连接方式的小伙伴务必注意一下
受制于树莓派的性能,此过程会花费很长一段时间,大约需要4个小时,所以采用VNC连接方式,不至于在此过程中,电脑因为要观察树莓派编译进度而保持长时间开机,命令行执行下面命令
make
然后你会看到
0%
过了很久很久
100%
最后命令行执行(仍然是/build目录下)
sudo make install
耐心等待几分钟,大功告成!!!!!!
\滑稽