python下载过程中最后一步执行opencv出错怎么回事_树莓派3B安装编译OpenCV3教程以及常见错误处理...

最新树莓派系统opencv3的安装

一、配置树莓派

系统安装和配置

更换更新源和下载源

更换pip下载源

更新软件系统

扩展根目录空间

设置SWAP

二、安装运行在python2上的OpenCV

三、安装python3下的OpenCV

1、安装Python科学计算库numpy

2、安装OpenCV所需的库

3.下载opencv3.4.3和opencv_contrib3.4.3包

4.设置CMAKE编译参数

5.备份build文件夹

6.编译OpenCV3

7.安装OpenCV3

8.恢复SWAP空间

四、配置OpenCV

1.配置opencv.conf

2.修改bash.bashrc 配置文件

3.检查是否安装完成

五、编译中可能会出现的问题(没出现忽略)

近期把吃灰的树莓派3B找了出来,想在上面运行opencv3,安装编译的过程中走了很多弯路,参考网上众多大佬的笔记,发现要么不齐全,要么教程老旧,不适用于新版系统,故写下这篇博文以供大家参考,希望能帮助大家少走弯路。

一、配置树莓派

系统安装和配置

关于树莓派系统的安装和初期配置网上教程很多,这里不再赘述。

本文配置环境为:

树莓派3B

系统Raspberry Pi OS(2020-05-27)

32G储存卡

更换更新源和下载源

sudo nano /etc/apt/sources.list

在第一行前输入 # 注释系统默认源

在最后一行输入以下代码更换为中科大镜像

deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi

deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi

按ctrl+x进行保存退出

更换pip下载源

命令行输入:

sudo mkdir ~/.pip

cd .pip

sudo nano pip.conf

在打开的文件中输入以下代码

[global]

timeout = 10

index-url = http://mirrors.aliyun.com/pypi/simple/

extra-index-url= http://pypi.douban.com/simple/

[install]

trusted-host=

mirrors.aliyun.com

pypi.douban.com

按下ctrl+x保存退出

更新软件系统

sudo apt-get update

sudo apt-get upgrade

扩展根目录空间

在控制终端输入

sudo raspi-config

通过键盘上下键控制,选择7.Advanced Options进入,然后选择Expand Filesystem,将根目录扩展到整个SD卡,充分利用SD卡的存储空间。如果不进行这一步,后续命令会出现卡死。

设置完成后退出设置界面,重启树莓派。

sudo reboot

设置SWAP

OpenCV安装编译过程中数据吞吐较大,为了防止系统卡死,需要设置合适的交换空间。

sudo nano /etc/dphys-swapfile

将 CONF_SWAPSIZE 的值修改成你想要的大小。 一般在内存小于2G的情况下,交换分区应为内存的2倍!

然后,重新启动 dphys-swapfile 文件服务:

sudo /etc/init.d/dphys-swapfile restart

输入free -h查看是否设置成功

二、安装运行在python2上的OpenCV

打开终端,输入以下两个命令即可完成安装(第一条可能要花半小时左右完成)

sudo apt-get install libopencv-dev

sudo apt-get install python-opencv

安装完成,输入cv2.__version__即可查看OpenCV版本号

三、安装python3下的OpenCV

1、安装Python科学计算库numpy

sudo pip3 install numpy

2、安装OpenCV所需的库

// 安装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

3.下载opencv3.4.3和opencv_contrib3.4.3包

为了方便后期管理,我们把文件下载安装到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

4.设置CMAKE编译参数

为了正确编译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 ..

③配置成功的界面如下图所示

5.备份build文件夹

下一步我们会利用build文件夹里的文件进行make,一旦失败还需要重新进行cmake参数设置。为了节省时间,对build文件夹进行备份。

cd ..

cp -r build ./build1

6.编译OpenCV3

进入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

7.安装OpenCV3

编译完成后即可进行最后一步——安装。

//安装OpenCV3

sudo make install

//安装动态链接库

sudo ldconfig

8.恢复SWAP空间

安装完成后需要把swap恢复系统默认,然后重新启动服务。否则大量的数据交换会导致内存卡损坏。

sudo nano /etc/dphys-swapfile

CONF_SWAPSIZE = 100

sudo /etc/init.d/dphys-swapfile restart

四、配置OpenCV

1.配置opencv.conf

为了保证个别语言的编译要求,需要对opencv.conf文件进行配置

sudo nano /etc/ld.so.conf.d/opencv.conf

在打开的文件最后两行键入以下内容

//其中,/usr/local为默认安装路径,根据实际情况进行修改即可

/usr/local/lib

?

更新动态链接

sudo ldconfig

2.修改bash.bashrc 配置文件

//打开bash.bashrc

sudo nano /etc/bash.bashrc

//最后两行加入以下代码

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

export PKG_CONFIG_PATH

//重启树莓派

sudo reboot

3.检查是否安装完成

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!!

五、编译中可能会出现的问题(没出现忽略)

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/下即可

缺少的文件为:

boostdesc_bgm.i

boostdesc_bgm_bi.i

boostdesc_bgm_hd.i

boostdesc_binboost_064.i

缺失文件下载链接:https://share.weiyun.com/6gaKPUXf 密码:c6myk6

本文最终安装的OpenCV版本为OpenCV3.4.3。

如需安装最新的OpenCV4,可参考博文:https://blog.csdn.net/weixin_43287964/article/details/101696036

本人尝试在树莓派上安装OpenCV3.4.3的过程中遇到了好多坑,参考网上众多大佬的笔记后前前后后尝试了四五天才完成,非常感谢各位大佬的帮助。为了让和我一样刚刚接触OpenCV的你能顺利的安装opencv,故写下这篇博客,此篇博客中若有错误,欢迎大家指正交流!!!

码字不易,如需转载请注明出处,谢谢!!!

你可能感兴趣的:(python下载过程中最后一步执行opencv出错怎么回事_树莓派3B安装编译OpenCV3教程以及常见错误处理...)