1.安装numpy
打开终端 使用pip3(pip默认指的是python2.7的pip)进行安装numpy依赖库
sudo pip3 install numpy
2.把根目录扩大到整个SD卡
(后续操作需要很大的空间 不进行扩展会卡住)
- 打开终端 输入以下命令 进入树莓派配置界面
sudo raspi-config
选择进入 7 Advanced Options (光标移动到7 回车)
进入以下页面
4.选择 A1 Expand Filesystem 回车
5.然后进行重启
3.换源
先换源 不然下载会很慢
在终端直接执行以下两行命令,替换清华镜像源。
sudo sed -i 's#://raspbian.raspberrypi.org#s://mirrors.tuna.tsinghua.edu.cn/raspbian#g' /etc/apt/sources.list
sudo sed -i 's#://archive.raspberrypi.org/debian#s://mirrors.tuna.tsinghua.edu.cn/raspberrypi#g' /etc/apt/sources.list.d/raspi.list
更换源后,需要更新本地软件索引:
sudo apt-get update
4.安装依赖库
- 先更新一下
sudo apt-get update
sudo apt-get upgrade
2.安装build-essential、cmake、git和pkg-config
sudo apt-get install build-essential cmake git pkg-config
3.安装jpeg格式图像工具包
sudo apt-get install libjpeg8-dev
4.安装tif格式图像工具包
sudo apt-get install libtiff5-dev
5.安装JPEG-2000图像工具包
sudo apt-get install libjasper-dev
6.安装png图像工具包
sudo apt-get install libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
将opencv的两个库 opencv-3.4.0.zip 和 opencv_contrib-3.4.0.zip放到/home/pi/Downloads目录下
5.解压
(要在 /home/pi/Downloads目录下)
sudo unzip opencv-3.4.0.zip opencv_contrib-3.4.0.zip
6.设置编译参数
1.进入 /home/pi/Downloadsopencv-3.4.0 文件夹下
cd /home/pi/Downloadsopencv-3.4.0
2.创建文件夹 build 并进入
sudo mkdir build
cd build/
cmake的编译环境
sudo 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/Downloads/opencv_contrib-3.4.0/modules -D BUILD_EXAMPLES=ON -D WITH_LIBV1L=ON -D PYTHON3_EXECUTABLE=/usr/bin/python3.7 -D PYTHON_INCLUDE_DIR=/usr/include/python3.7 -D PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include ..
在opencv-3.4.0/build文件夹下
sudo make
1)在编译到75%左右时可能会出现openc_contrib 提示缺少boostdesc_bgm.i文件而出错
这个是由于官方所给的那两个包不全,(没有此错误的可以忽略)
解决方法如下:
先给文件夹权限
sudo chmod -R 777 /home/pi/Downloads/opencv_contrib-3.4.0/modules/xfeatures2d/src
将所有带i结尾的文件全部都拷贝到 opencv_contrib/modules/xfeatures2d/src/ 路径下即可
2)在编译到94%左右时可能会出现fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录的错误标志 (没有此错误的可以忽略)
这个是由于之前在树莓派的python2环境下安装了opencv所致
解决方法如下:
将/home/pi/Downloads/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2目录下的xfeatures2d文件夹和xfeatures2d.hpp文件复制粘贴到
/home/pi/Downloads/opencv-3.4.0/modules/stitching/include/opencv2目录下即可解决
3)对于树莓派4B,在编译到99%左右时可能会出现
这个可能是由于系统版本不同和树莓派版本的不兼容所致
解决方法如下:
首先找到/home/pi/Downloads/opencv-3.4.0/modules/python/src2 中的cv2.cpp文件,
然后在第885行把char* 改成 const char* (或者尝试如下图加个char*)即可解决,最后继续上面的编译操作即可。
至此编译完成!
二、安装和测试
sudo make install
sudo ldconfig
然后测试一下
python3
import cv2
cv2.__version__
附:如果出现打开摄像头的时候