树莓派3b安装opencv

前言:最近买了一个CSI接口的摄像头,最准用树莓派做人脸识别项目。树莓派上本身已经安装了python2、python3,最开始通过sudo apt-get install python3-opencv命令安装了opencv和numpy库,后来在做人脸识别的过程后发现缺少了contrib库,但是一直安装contrib库失败,最后只能把opencv卸载了,通过编译源码方式重装。其中遇到了各种问题,缺少文件、树莓派内存不足,ssh连接中断。

安装python3上允许的opencv

1、安装numpy库

sudo pip3 install numpy

2、安装opencv所需要的库

sudo apt-get install build-essential git cmake pkg-config -y
sudo apt-get install libjpeg8-dev -y
sudo apt-get install libtiff5-dev -y
sudo apt-get install libjasper-dev -y
sudo apt-get install libpng12-dev -y

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y

sudo apt-get install libgtk2.0-dev -y
sudo apt-get install libatlas-base-dev gfortran -y

3、下载opencv和opencv_contrib到用户目录,如果使用git下载时网速过慢,可以在浏览器中直接下载后拷贝到用户目录下

git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

4、解压压缩文件,并将opencv_contrib库拷贝到opencv下

unzip -O opencv opencv-master.zip
unzip -O opencv_contrib opencv_contrib-master.zip

5、进入到opencv目录下,新建一个build文件夹

cd opencv
mkdir build

6、配置cmake编译环境

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/opencv/opencv_contrib/modules   
    -D BUILD_EXAMPLES=ON  ..    

 在这一步的过程中,遇到了缺少文件的错误情况,错误如下:bootstdesc_bgm.i文件下载超时

解决办法:将缺少的文件从网上下载下来,然后拷贝到/home/pi/opencv/opencv_contrib/modules/xfeatures2d/src目录下

文件下载地址参考:https://github.com/opencv/opencv_contrib/issues/1301

缺少的文件一共是:

然后重新运行cmake命令

7、编译opencv源码

sudo make

在程序运行两个小时后,编译报错,提示fatal error: bootstdesc_lbgm.i没有那个文件或目录

解决方法:将/home/pi/opencv/modules/features2d/test目录下的缺少的文件拷贝到/home/pi/opencv/opencv_contrib/modules/xfeatures2d/test目录下,继续运行make命令,编译会从上次停止的地方继续运行。

在程序编译进行到百分之73%时报错,提示缺少文件

解决办法为:和上面的操作一样,先拷贝缺少的文件,然后在/home/pi/opencv/opencv_contrib/modules/xfeature2d/test目录下编辑test_features2d.cpp文件,修改内容如下

后面还会出现类似的错误,解决方法类似。

编译到96%时树莓派一直卡住了,查看系统内存只有30M左右的剩余了,于是将SWAP分区设置为2048才编译成功,整个编译时间大概5个小时。

8、安装opencv

sudo  make install
sudo ldconfig

9、测试opencv是否安装正确

  

原文地址:https://www.cnblogs.com/lw77/p/11918660.html