1.准备工作
硬件:16GB SD卡
软件:Raspberry Pi OS(Raspbian)32位桌面版 2021-05-07-raspios-buster-armhf
使用方式:ssh远程登陆或外接显示器操作
2.安装需要的库
2.1 依赖库
sudo apt-get install libhdf5-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libjasper-dev
sudo apt-get install libqt4-test
sudo apt-get install libqtgui4
sudo apt-get update
如果后续安装中发现缺依赖库,可根据提示名sudo apt-get install进行安装。
2.2 numpy
注意版本的选择:我的树莓派4预装python3.7.3,目前支持的numpy库最新版本为1.16.2
3.找到numpy对应的opencv版本
这一步十分关键。 许多朋友验证opencv时出现numpy的报错,就是因为两者版本的不匹配。
我的方法如下:
访问:pypi官网查询opencv和numpy版本发行时间
numpy 1.16.2 Released: Feb 27, 2019
OpenCV 4.1.0.25 Released: Apr 11, 2019
保证numpy发行日期早于OpenCV发行日期,但又不能太早于OpenCV的发行版本。 开始时我直接安装的最新版OpenCV4.5.3.56(Released: Jul 11, 2021)就出现了numpy的报错。
4.命令行安装
sudo pip3 install opencv-python==4.1.0.25
sudo pip3 install opencv-contrib-python==4.1.0.25
安装过程和结果
在python终端模式下,当输入import cv2出现版本编号4.1.0时,说明安装成功。
5.功能验证
5.1 读写图像验证
import cv2 as cv
import sys
img = cv.imread(cv.samples.findFile("/home/pi/opencv/image/opencv-logo-white.png"))
#自定义输入图像路径
if img is None:
sys.exit("Could not read the image.")
cv.imshow("Display window", img)
k = cv.waitKey(0)
if k == ord("s"): #按下s键时存储图像
cv.imwrite("opencv-logo.png", img)
#自定义输出图像路径,未指定则放在python文件目录下
运行效果,按s键退出
5.2调用摄像头实时显示
需通过板载CSI接口连接摄像头并使能。我使用了同济子豪兄的测试例程进行验证,调用cv2.imshow进行摄像头捕捉画面的实时显示,如下图所示。
git clone https://github.com/TommyZihao/opencvtest.git
cd opencvtest
python3 testopencv.py
6.总结
pip命令安装OpenCV的关键在于: 一定要保证numpy和opencv版本的匹配关系。
参考资料:官方github Installation and Usage部分