说在前面
- 树莓派版本:4B
- 树莓派系统:raspian
- PC环境:ubuntu16.04
pip安装
适用于仅使用opencv的基础功能
-
修改python默认版本
打开环境变量.bashrc
文件vi ~/.bashrc
在文件末添加
alias python=python3
这样我们在命令行界面使用
python
时默认使用python3 -
网站下载
(建议不要直接使用pip3 install opencv-python
)
进入piwheel,使用浏览器下载后缀为cp37-cp37m-linux_armv7l.whl
的文件
-
pip3本地安装opencv_python
假设文件opencv_python-4.1.0.25-cp37-cp37m-linux_armv7l.whl
下载在/home/pi
目录下,则sudo pip3 install /home/pi/opencv_python-4.1.0.25-cp37-cp37m-linux_armv7l.whl
-
pip3 安装numpy
临时使用清华源sudo pip3 install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
-
安装各种依赖项
sudo apt-get install libhdf5-dev libatlas-base-dev \ libjasper-dev libqt4-test
若在运行
.py
文件时出现类似ImportError: libxxx.so: cannot open shared object file: No such file or directory
的错误,请自行搜索并安装相关库 -
其他错误
运行.py
文件时出现ImportError: xxx/cv2.cpython-37m-arm-linux-gnueabihf.so: undefined symbol: __atomic_fetch_add_8
请在.bashrc
文件末尾添加export LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1
保存退出后(假设此时在/home/pi)
source .bashrc
使环境变量生效
编译安装
适用于opencv更高级的使用
- 比较复杂
自己目前没有用到比较高级的内容,暂未在树莓派上编译
代码测试
import numpy as np
import cv2 as cv
src = cv.imread("test.jpg")
cv.imshow("src", src)
cv.waitkey(0)