赞
踩
参考博客:树莓派3B安装编译OpenCV3教程以及常见错误处理丶Java教程网-IT开发者们的技术天堂
sudo raspi-config
通过键盘上下键控制,选择7.Advanced Options进入,然后选择Expand Filesystem,将根目录扩展到整个SD卡,充分利用SD卡的存储空间。如果不进行这一步,后续命令会出现卡死。
设置完成后退出设置界面,重启树莓派。
sudo nano /etc/dphys-swapfile
将 CONF_SWAPSIZE 的值修改成你想要的大小。 一般在内存小于2G的情况下,交换分区应为内存的2倍!
然后,重新启动 dphys-swapfile 文件服务:
sudo /etc/init.d/dphys-swapfile restart
输入free -h
查看是否设置成功
sudo pip3 install numpy
- // 安装build-essential、cmake、git和pkg-config(cmake开发人员工具)
- 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
- //GTk2.0安装
- sudo apt-get install libgtk2.0-dev -y
- //安装OpenCV数值优化函数包
- sudo apt-get install libatlas-base-dev gfortran -y
为了方便后期管理,我们把文件下载安装到Downloads文件夹
cd Downloads
然后利用wget命令从网络下载opencv3.4.3和opencv_contrib3.4.3
- wget -O opencv-3.4.3.zip https://github.com/Itseez/opencv/archive/3.4.3.zip
- wget -O opencv_contrib-3.4.3.zip https://github.com/Itseez/opencv_contrib/archive/3.4.3.zip
解压这两个文件
- unzip opencv-3.4.3.zip
- unzip opencv_contrib-3.4.3.zip
为了正确编译OpenCV,需要对cmake参数进行设置。
①在opencv-3.4.3文件夹下创建build文件夹以存放编译临时文件
- cd ~/Downloads/opencv-3.4.3
- mkdir build
- cd build
②设置cmake编译参数
- //下述参数中,INSTALL_PYTHON_EXAMPLES、INSTALL_CXX_EXAMPLES、BUILD_EXAMPLES分别是安装python例程、安装C例程以及编译例程,这三个可以不加,这样编译速度快一点,根据需要自行选择。
- sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
- -D CMAKE_INSTALL_PREFIX=/usr/local \
- -D OPENCV_EXTRA_MODULES_PATH=/home/pi/Downloads/opencv_contrib-3.4.3/modules \
- -D INSTALL_PYTHON_EXAMPLES=ON \
- -D INSTALL_CXX_EXAMPLES=ON \
- -D BUILD_EXAMPLES=ON ..
③配置成功的界面如下图所示
下一步我们会利用build文件夹里的文件进行make,一旦失败还需要重新进行cmake参数设置。为了节省时间,对build文件夹进行备份。
- cd ..
- cp -r build ./build1
编译中可能会出现的问题(没出现忽略)
1、编译过程中可能会报错**:fctal error: ImfChromaticities.h: 没有那个文件或目录。**
输入以下代码可以解决
sudo apt-get install libopenexr-dev
2.编译18%左右可能会报错fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录。
这是由于我们之前安装了python2环境下的opencv导致的,复制两个文件即可解决:
将/home/pi/Downloads/opencv_contrib-3.4.3/modules/xfeatures2d/include/opencv2目录下的xfeatures2d文件夹和xfeatures2d.hpp文件复制粘贴到/home/pi/Downloads/opencv-3.4.3/modules/stitching/include/opencv2目录下即可
文件也可以从链接中下载,然后拷贝进正确的路径即可:链接:https://share.weiyun.com/tMPeaqGP 密码:ye4ezy
3.在编译到81%左右的时候,可能会报错Built target opencv_tracking [Makefile:163 : all] 错误2(或者其他类似的错误)
这主要是因为下载的包不完整导致的,把缺少的文件拷贝到:home/pi/Downloads/opencv_contrib-3.4.3/modules/xfeatures2d/src/下即可
缺少的文件为:
进入build文件夹进行编译,这一步耗时较长(大约四五个小时)。建议在树莓派环境下进行,防止ssh断开导致编译失败。同时树莓派要保证供电充足,且最好不要进行其他操作。
- cd ~/Downloads/opencv-3.4.3/build
- //使用最多4线程编译,加快编译速度。同时保存编译信息到make.log,方便离线查看编译进度
- sudo make -j4 2>&1 | tee make.log
如果看到进度编译到100%,那么说明编译安装成功。
如果遇到中途出错或者临时断电等问题,直接输入以上命令继续编译即可。如果想重新进行编译,可以把路径跳转到我们上面备份的build1文件夹进行编译,也可以输入以下命令重新编译
- make clean
- sudo make -j4 2>&1 | tee make.log
编译完成后即可进行最后一步——安装。
- //安装OpenCV3
- sudo make install
- //安装动态链接库
- sudo ldconfig
安装完成后需要把swap恢复系统默认,然后重新启动服务。否则大量的数据交换会导致内存卡损坏。
- sudo nano /etc/dphys-swapfile
- CONF_SWAPSIZE = 100
- sudo /etc/init.d/dphys-swapfile restart
为了保证个别语言的编译要求,需要对opencv.conf文件进行配置
sudo nano /etc/ld.so.conf.d/opencv.conf
在打开的文件最后两行键入以下内容
- //其中,/usr/local为默认安装路径,根据实际情况进行修改即可
- /usr/local/lib
- ?
更新动态链接
sudo ldconfig
- //打开bash.bashrc
- sudo nano /etc/bash.bashrc
- //最后两行加入以下代码
- PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
- export PKG_CONFIG_PATH
- //重启树莓派
- sudo reboot
- python3
- import cv2
- cv2.__version__
如果出现如图所示的结果,则说明安装成功
也可以通过运行以下代码生成一个图像来检测OpenCV是否工作正常
- touch test.py
- nano test.py
-
- import cv2
- import numpy as np
- cv2.namedWindow("gray")
- img = np.zeros((512,512),np.uint8)#生成一张空的灰度图像
- cv2.line(img,(0,0),(511,511),255,5)#绘制一条白色直线
- cv2.imshow("gray",img)#显示图像
- #循环等待,按q键退出
- while True:
- key=cv2.waitKey(1)
- if key==ord("q"):
- break
- cv2.destoryWindow("gray")
-
- python3 test.py
最终的结果应该是生成一个空的灰度图像,图像中间有一条白色直线。如下图所示
搞定!ENJOY!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。