超简单教你在树莓派上安装opencv
Posted 流 浪 猫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了超简单教你在树莓派上安装opencv相关的知识,希望对你有一定的参考价值。
超简单教你在树莓派上安装opencv(二)
前言
使用须知:本文章主要是针对 Python3.9.2 版本的Python安装 OpenCv,如果你的 Python 版本不是 Python3.9.2,而是在3.8 以下,你可以点击 这里的教程 来安装OpenCv。另外有的版本好像是 Python3.9.3,本文方法应该不适用。 |
---|
一、如何基于python3.9.2安装OpenCv?
1.1 查看自己系统位数及Python版本,跟对教程
因为自己直接下载的官方32位操作系统的镜像,在写博客时未考虑到系统位数问题,在此提前告知各位,因作者本人未尝试在64位系统上进行安装OpenCv,所以不清楚在安装过程中是否会有报错以及是否能够安装成功,大家可以进行尝试。
在此感谢用户 qq_46120289 提出该问题
# 大家可以使用下方指令查看自己系统位数
getconf LONG_BIT
因为不同的Python版本操作方法不同,所以跟对教程很重要。
1.2 换源
大家可以跟着我之前的这篇文章换源,也可以跟着我接下来的操作换源。其实之前的换源方法有点麻烦,建议大家使用接下来的换源方法。
wget -qO- https://tech.biko.pub/resource/rpi-replace-apt-source-buster.sh | sudo bash
将上述代码复制到 LX_终端 ,如下图
回车确定,换源成功,如下图
1.3 更新
在终端对新换的源内容更新,分别输入下面两行代码更新,如下图
sudo apt-get update
sudo apt-get upgrade
1.4 安装依赖
在终端依次输入下面内容,逐条安装,如下图
大家在执行下面第三条语句时如果出现红色报错,可以尝试 用户 不知道怎么谈恋爱 提供的解决方案 ,并在此感谢该用户的经验分享 !
如果下载sudo apt-get install libqtgui4
报错
可以先下载sudo apt-get install aptitude
然后输入sudo aptitude install libqtgui4
sudo apt-get install libatlas-base-dev
sudo apt-get install libjasper-dev
sudo apt-get install libqtgui4
sudo apt-get install python3-pyqt5
sudo apt install libqt4-test
过程中可能有的装不上,不用担心,注意看报错信息,不是红色报错的,就不用担心,要么就是已经安装过了,要么就是现存更高版本的,不影响后续操作。如下图
将上述操作完成后再次 sudo apt-get update 一次
1.5 查看自己树莓派的架构来确定下载什么包
在 LX_终端 输入下面的代码来查看自己Linux的架构
uname -a
上面这张图里的 Linux 系统用的是 armv7l 架构,除此外还有 armv6l 架构,知道自己的系统架构后我们进行下一步
1.6 下载自己需要的 whl 包
这一步非常简单,我们已经快完成一半了,加油!
进入该网站下载我们需要的包,进入链接后如下图
接下来我以 OpenCv4.5.5.62 为例下载安装,当然你也可以根据自己需求安装其他版本,前提是需要支持你的 Python 版本
显然我需要下载上图中箭头指向的 whl 文件。如何知道自己需下载哪一个呢?这里我讲一下,笔者这里讲解的是箭头所指的 whl 包,它的OpenCV版本为4.5.5.62,所需Python版本为3.9【cp39对应Python3.9,cp37对应Python3.7】,需使用armv7l架构的Linux系统
接下来我们需要将下载的 whl 文件传输到树莓派上,如何传输看大家自己的选择,我这里使用 VNC Viewer实现文件传输,当然也可以选择使用 FileZilla 传输,不管用什么传输,希望大家把文件放在树莓派桌面,方便下一步操作。
1.7 安装OpenCv
来到这里,你需要确保前期准备工作已经准备完毕,不然的话可能会报错。如果前期工作已完成,那么接下来就正式安装 OpenCv
我们需要先使用下面代码进入桌面
cd Desktop
然后输入 pip install opencv 这时候我们输入到大概下图这样子,因为 OpenCv 版本号长又容易出错,所以这里直接按一下 Tab 键,让电脑自动补全即可,完成后如下面第二张图
直接回车确定,等待一分钟,就会出现下面的界面,表示安装成功
二、报错了?!
开心吗?安装成功了,不过很多人很快便会发现在导入 OpenCv 时报错,但也有的不会报错
2.1 报出如下错误
如果不出意外,很多人在导入OpenCv 时报如下图所示错误
2.2 为啥会报错
因为 OpenCv 跟 numpy 相关联,版本需要一致才行,知道错误原因了就好办了,先看看自己的 numpy 版本(你们可以不进行这步,可以直接更新 numpy ,我这里是为了给大家展示)
大家可以直接从这里开始,输入如下命令更新 numpy
pip3 install -U numpy
警告,红色警告,不过还是能成功安装的,接下来再看看 numpy 版本
OK, numpy 版本已经跟上了,下一步,测试 OpenCv 是否可用
2.3 测试OpenCv
导入 OpenCv 测试,并查看其版本号是否正确
没有报错,完结撒花!!!!
三、作者有话说
如果你觉得这篇文章有帮助到你,能否给作者点个赞鼓励一下呢?同时这也将会帮助到更多需要他的人
树莓派01——初始化配置OpenCV3的安装
参考资料:
【为树莓派更换国内镜像源】https://blog.csdn.net/la9998372/article/details/77886806/
【子豪兄教你在树莓派上安装OpenCV】https://zhuanlan.zhihu.com/p/46032511
【树莓派安装OpenCV3完整过程】https://blog.csdn.net/kyokozan/article/details/79192646
关键词:
树莓派 更新源 Python版本切换 OpenCV实时人脸识别
一、准备工作
1、软件
1.镜像工具:win32diskimager-1.0.0
2.SD卡格式化工具:SDCardFormatterv5_WinEN
【链接:https://pan.baidu.com/s/1CLL-FWZz2UMQdkUjzUyEWg 提取码:lde6 】
3.树莓派官方系统:2018-11-13-raspbian-stretch-full.img
【下载地址https://www.raspberrypi.org/downloads/raspbian/ 下载Raspbian Stretch with desktop and recommended software】
2、硬件
树莓派3B+、32G TF卡(16G及以上)、摄像头、键盘鼠标显示器……
3、系统烧写
1.SD格式化:Format即可
2.系统烧写,选择镜像文件,确认烧录设备后,点击写入,大概5分钟后,提示写入成功,点击退出,弹出SD卡,插树莓派上
二、系统安装及配置
1、开始
SD卡插好后,接上电源(勿用电脑USB,建议直接使用手机充电头,否则开机屏幕右上角显示一个?符号,表示电力不足),接上显示器键盘鼠标……
系统自动安装,进入桌面后,有一个向导程序,可以先选择地区,设置密码,选择WIFI网络。注意,后面一步提示更新软件,请直接点Skip跳过去,之后一律Skip,然后会自动重启。(等下一步更新源之后再去更新)
2、更新源
编辑/etc/apt/sources.list文件:
sudo nano /etc/apt/sources.list
用#注释原内容,用以下内容替换:
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
编辑/etc/apt/sources.list.d/raspi.list文件:
sudo nano /etc/apt/sources.list.d/raspi.list
用#注释原内容,用以下内容替换:
deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
最后更新:
sudo apt-get update
sudo apt-get upgrade
3、下载输入法
sudo apt-get install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin
4、Python版本切换
输入python -V查看版本
sudo rm usr/bin/python
sudo ln -s usr/bin/python3.5 usr/bin/python
再输入python -V查看版本
5、打开摄像头等功能
1.使能摄像头
sudo raspi-config
选择第5项【Interfacing Options】,选择【P1 Camera】,一直选【是】
除此外,也可以点任务栏的树莓派Logo,首选项->Raspberry Pi Configuration,在Interfaces中,Camera选项,点Enable
2.相关设置
输入:sudo nano /etc/modules
// 进入编辑界面后,在末尾添加输入
snd-bcm2835
bcm2835-v4l2
【先按键盘上的ctrl+o,再按回车保存,再按ctrl+x退出nano编辑器回到命令行界面。】
3.验证
输入:vcgencmd get_camera
出现下面的情况,证明设置成功
四、OpenCV
1、安装numpy
sudo pip3 install numpy
2、扩大目录
sudo raspi-config
选择Advanced Options
选择Expand Filesystem,将根目录扩展到这个SD卡,充分利用SD卡的存储空间。如果不进行这一步,后续命令会出现卡死。
退出设置界面,重启树莓派。
sudo reboot
3、安装
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
git clone https://github.com/opencv/opencv.git
//下载的文件可能需要解压
//打开下载的文件
cd opencv-3.4.3
mkdir release
cd release
//直接复制下面两行
cmake -D CMAKE_BUILD_TYPE=RELEASE \\
-D CMAKE_INSTALL_PREFIX=/usr/local ..
//编译(这步耗时较长,2小时左右)
sudo make
//安装
sudo make install
//更新动态链接库
sudo ldconfig
验证安装OpenCV是否成功,成功后,会显示灰度图,中心有圆圈
1 # -*- coding: utf-8 -*- 2 __author__ = "kyoRan" 3 4 import cv2 5 6 cap = cv2.VideoCapture(0) # 打开摄像头 7 print("VideoCapture is opened?", cap.isOpened()) 8 9 while(True): 10 11 ret, frame = cap.read() # 读取摄像头图像 12 center = (frame.shape[1]//2, frame.shape[0]//2) # 图像中心点位置 13 14 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 转灰度 15 cv2.circle(gray, center=center, radius=100, color=(0,0,255)) # 画圆 16 cv2.imshow("frame", gray) # 显示图片 17 18 if cv2.waitKey(1) & 0xFF == ord(‘q‘): 19 break 20 21 cap.release() # 释放摄像头 22 cv2.destroyAllWindows() # 关闭所有窗口
五、实时人脸识别设置
代码如下,其中,haarcascade_frontalface_default.xml文件在, opencv-3.4.3/data/haarcascades中
1 import numpy as np 2 import cv2 3 4 faceCascade = cv2.CascadeClassifier(‘haarcascades/haarcascade_frontalface_default.xml‘) 5 6 cap = cv2.VideoCapture(0) 7 cap.set(3,640) # set Width 8 cap.set(4,480) # set Height 9 10 while True: 11 ret, img = cap.read() 12 img = cv2.flip(img, -1) 13 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 14 faces = faceCascade.detectMultiScale( 15 gray, 16 scaleFactor=1.2, 17 minNeighbors=5, 18 minSize=(20, 20) 19 ) 20 21 for (x,y,w,h) in faces: 22 cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) 23 roi_gray = gray[y:y+h, x:x+w] 24 roi_color = img[y:y+h, x:x+w] 25 26 cv2.imshow(‘video‘,img) 27 28 k = cv2.waitKey(30) & 0xff 29 if k == 27: # press ‘ESC‘ to quit 30 break 31 32 cap.release() 33 cv2.destroyAllWindows()
以上是关于超简单教你在树莓派上安装opencv的主要内容,如果未能解决你的问题,请参考以下文章