树莓派安装OpenCV-Python

之前在 macOS 上安装 OpenCV 还比较顺利,直接在 PyCharm 里用 pip 安装就成功了。但是在树莓派上安装 OpenCV 一直依赖关系的错。最终在重新安装完 Raspberry OS 之后,用清华的源安装成功了。

更换清华源

官方资料:Raspbian 镜像使用帮助

设置:

1
2
3
4
5
6
7
# 编辑 `/etc/apt/sources.list` 文件,删除原文件所有内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib

# 编辑 `/etc/apt/sources.list.d/raspi.list` 文件,删除原文件所有内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui

安装OpenCV-Python

执行命令:

1
2
3
4
5
6
# 安装必要软件
sudo apt-get install -y libjasper-dev libqtgui4 libqt4-test

# 安装OpenCV
sudo apt install python-opencv

3b+更换为国内源的话大概一两分钟,就安装完成了。

测试

利用OpenCV打开摄像头,并读取视频数据显示出来:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# !/usr/bin/env python
# _*_ coding:utf-8 _*_


import cv2
import numpy as np

cap = cv2.VideoCapture(0)
if not cap.isOpened():
print("camera is still closed.")
while cap.isOpened():
ret, frame = cap.read()
if ret == True:
cv2.imshow('Frame', frame)
if cv2.waitKey(25) & 0xFF == ord('q'):
break
else:
break

cap.release()
cv2.destroyAllWindows()

如果是利用终端命令通过ssh远程执行的话,会出错:cannot open display,因为ssh无法打开窗口,在树莓派终端执行不会报错。