树莓派Buster系统编译安装opencv(一)

工作任务:在树莓派上搭opencv环境实现条形码的实时识别
树莓派:Zero W
内存卡:32G
其他:HDIM线,显示器,键盘,鼠标,外接摄像头

一.配置wifi

参考树莓派zero w 配置wifi

二.换源

树莓派服务器在国外,国内用户在使用中,update和install过程中会非常慢甚至网络断联报错,在你没有魔法上网 时,换源是友好的选择
准备换源
首先查看自己树莓派版本树莓派版本树莓派版本
重要的事情说三遍!!!
在终端里输入

lsb_release -a

在这里插入图片描述
buster即为当前操作系统版本
确定完版本后
打开配置sources.list文件
在终端 输入

sudo nano /etc/apt/sources.list

用#注释掉原文件内容,用以下内容取代Ctrl + O 保存 Ctrl + X 退出
用清华大学的软件源举例:(buster版本
Ps:Ctrl+Shift+V可以在终端粘贴

# 编辑 sudo nano /etc/apt/sources.list 文件,删除或注释原文件所有内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi

# 编辑 sudo nano /etc/apt/sources.list.d/raspi.list 文件,删除或注释原文件所有内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui

完成后更新一下软件源列表

sudo apt-get update
sudo apt-get upgrade #此项更新安装包

三.搭建树莓派环境

1.拓展TF内存卡

Warning:搭建OpenCV环境,树莓派至少16GTF卡,需要拓展TF的存储空间至整个TF卡空间
查看当前树莓派空间分配

df -h #查看当前树莓派空间分配

在这里插入图片描述
继续输入

sudo raspi-config

在这里插入图片描述
在这里插入图片描述
确定—finish保存回车ENTER(树莓派会重新启动)

sudo reboot #也可以手动重启

Tips:换源(python软件源)
之前的文章虽然已经 换源(清华)但是在我们搭建环境过程中为了能更稳定 ,我们再次换源,但这次只换Python软件源即可

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple #清华源
pip install pip -U
sudo reboot #重启树莓派

2.修改树莓默认Python版本

打开我们的终端输入

python

在这里插入图片描述
我发现默认版本是Python2.7.16(输入Ctrl + Z退出python环境)
继续输入

python3

在这里插入图片描述
python3版本为3.7.3**,所以修改默认版本(python)为python3.7
输入

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
Keep goingsudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

再次输入python发现修改默认版本成功

3.扩展交互空间

安装OpenCV3编译部分是最头痛的,Up主自己在编译中很多次都会卡在40%左右假死挂起然后报错,部分报错原因可能是由于交互空间不足导致的,在之前树莓派3B上尝试了很多次都假死挂起(内存太小),在此我们先增大Swap交互空间
在终端中输入

free -m #查看当前内存

在这里插入图片描述
继续输入

sudo nano /etc/dphys-swapfile

将CONF_SWAPSIZE = 改为1024
在这里插入图片描述
Ctrl + O再Enter再Ctrl + X保存退出
继续输入

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

在这里插入图片描述增大Swap交互空间成功

4.安装工具包

一个一个安装
OpenCV编译工具

sudo apt install build-essential
sudo apt install cmake
sudo apt install git
sudo apt install pkg-config

OpenCV图像包

sudo apt-get install libtiff5-dev #tif格式图像工具包
sudo apt-get install libjasper-dev #JPEG-2000图像工具包
sudo apt-get install libjpeg8-dev #jpeg格式图像工具包
sudo apt-get install libpng12-dev #png图像工具包

OpenCV视频I/O包

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

OpenCV-gtk2.0

sudo apt-get install libgtk2.0-dev #安装gtk2.0

优化函数包

sudo apt-get install libatlas-base-dev gfortran #安装优化函数包

以上依赖环境包安装好以后就开始准备配置Cmake参数
本次安装OpenCV4.0.0版,是从GitHub上Git clone的方式下载

mkdir ~/opencv_build #在opencv里新建build文件夹
cd ~/opencv_build
wget -O opencv-4.0.0.zip https://github.com/Itseez/opencv/archive/4.0.0.zip
#下载opencv 4.0.0包
wget -O opencv_contrib-4.0.0.zip https://github.com/Itseez/opencv_contrib/archive/4.0.0.zip
#下载opencv-contrib包文件

将下载好的opencv-4.0.0.zip 和opencv_contrib-4.0.0.zip 放入刚新建的opencv_build文件夹下,解压

unzip opencv-4.0.0.zip
unzip opencv_contrib-4.0.0.zip
#解压文件

进入opencv-4.0.0文件夹,新建build文件夹,存放cmake编译时产生的临时数据

cd ~/opencv_build/opencv-4.0.0
mkdir build
cd /build

5.设置编译参数

在文件解压完毕后,保证文件路径没有问题:向我这样的结构:opencv_build/opencv4.0.0/build/以下的操作均需要在build的这个文件夹进行
接下来准备设置编译参数,编译的语句安全起见要加 sudo

sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH=/home/pi/opencv_build/opencv_contrib-4.0.0/modules \
    	#根据自己contrib中modules文件夹的地址进行配置
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D INSTALL_CXX_EXAMPLES=ON \
	-D OPENCV_GENERATE_PKGCONFIG=ON \
    -D BUILD_EXAMPLES=ON ..

这里是编译的代码的详细注解

CMAKE_BUILD_TYPE #编译方式
CMAKE_INSTALL_PREFIX #安装目录
OPENCV_EXTRA_MODULES_PATH #加载额外模块
INSTALL_PYTHON_EXAMPLES #安装官方python例程
BUILD_EXAMPLES #编译例程
OPENCV_GENERATE_PKGCONFIG : #配置pkg-config , OpenCV 4 默认下生成”opencv4.pc“
-D INSTALL_C_EXAMPLES=ON	#如果需要C语言的编程案例在末尾加上

设置编译参数完成看到结尾像这样,没有报错且都为done的时候,编译部分结束
在这里插入图片描述
到这里,在成功编译的情况下建议把编译的文件夹进行一个备份:(/build)

cd ..
cp -r build ./buildres  #在当前目录备份build为buildres文件夹

6.编译

cd /build
sudo make -j4 2>&1 | tee make.log

如果幸运,将会出现以下界面,编译完成
在这里插入图片描述
通过!!!
接着执行

sudo make install

在这里插入图片描述
安装成功

7.配置OpenCV到Python环境变量

在整个安装完OpenCV环境下,打开终端进行测试
输入 : Python 进入Python的运行环境
输入import cv2 如果没有错误的话说明可以正常运行opencv的环境了,提示找不到库时候,说明需要将opencv的环境配置到Python中

退出Python环境,在终端输入

cd /usr/local/python/cv2

进入到Python cv2的文件下,继续输入ls 查看当前的文件夹下的文件
在这里插入图片描述
有一个文件夹是Python-3.7 ,进入这个文件夹 /usr/local/python/cv2/python-3.7(根据自己的文件版本进行调整)
在这里插入图片描述
这个文件夹里面有一个文件 cv2.cpython-37m-arm-linux-gnueabihf.so将这个文件复制到这个路径下/usr/local/lib/python3.7/dist-packages

sudo cp cv2.cpython-37m-arm-linux-gnueabihf.so /usr/local/lib/python3.7/dist-packages

在这里插入图片描述

8.更新环境变量

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 now 结束!!!
最后检测一下
在这里插入图片描述
测试代码:

import cv2
import numpy as np

img = cv2.imread(“你测试的图片路径”)
cv2.namedWindows(“TestImage”)
cv2.imshow("TestImage",img)
cv2.waitKey(0)
cv2.destoryAllWindow()

如果不幸,将会有各种编译错误,网上有很多常见错误解决方法。我最后没能解决,没有编译成功,放弃编译安装。
换个简单的方式安装,见树莓派Buster系统快速安装opencv(二)

转自:https://blog.csdn.net/weixin_50679163/article/details/110227418
https://blog.csdn.net/weixin_50679163/article/details/109998296

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值