一、实验准备
-
树莓派(已安装好系统)
-
VNC
树莓派系统如何烧录可参考:树莓派从烧录系统到ssh远程访问
树莓派如何配置 VNC 可参考:树莓派的一些基础配置(一)
二、配置 Python 环境
-
更改默认的 python 版本
a.
查看默认的 python 版本(一般情况都是 python2)python --version python3 --version pip --version pip3 --version
b.
将默认的 python2 版本更改为 python3 版本sudo rm /usr/bin/python sudo ln -s /usr/bin/python3.5 /usr/bin/python
注意:python3.5 是本人的 python3 版本号,需修改为自己 python3 的版本。
修改完毕后再次用 version 查看
-
安装 opencv-python 库
pip install opencv-python==3.4.4.19 -i https://mirrors.aliyun.com/pypi/simple pip install opencv-contrib-python==3.4.4.19 -i https://mirrors.aliyun.com/pypi/simple
opencv-python 后面 == 指定的是版本号,如果省略将会安装最新的版本
-
安装依赖库
sudo apt-get update #安装依赖库 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
如果不安装这些依赖库,当 import cv2 时将会报 "XXXX库 cannot open ……"等错,其中一个错误信息如下:
三、万事俱备,只欠东风
-
这里我选用的是树莓派自带的一个 Python IDE:Thonny
-
新建一个 test1.py 文件,写入如下内容并保存 (用于显示灰度图)
import cv2 img = cv2.imread("lena.jpg", 0) # print(img) cv2.namedWindow('img', cv2.WINDOW_AUTOSIZE) cv2.imshow('img', img) k = cv2.waitKey(0) if k == 27: # wait for ESC key to exit cv2.destroyAllWindows()
注意修改为自己的图片名称和路径,按 esc 键退出程序
效果如下:
-
新建一个 test2.py 文件,写入如下内容并保存(用于显示视频)
import cv2 cap = cv2.VideoCapture('/home/pi/18.mp4') cv2.namedWindow('frame', 0) cv2.resizeWindow("frame", 400, 400) while(cap.isOpened()): ret, frame = cap.read() cv2.imshow('frame', frame) if cv2.waitKey(25) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows()
注意修改为自己的视频名称和路径,按 q 键退出程序
效果如下:
四、说明
在 Ubuntu 下配置 python 的 python-opencv 环境,本篇文章同样适用;如果要基于 c++ 编程,可参考OpenCV在Ubuntu下的图像编程