超超最近参加了学校里一位特别厉害的老师讲的课(两天,我就从一个小白然后了解了树莓派以及Arduino这些我之前都没有了解过的东西,由于结课的需要,我们需要自己设计一个创意以及完成作品)所以才有了这篇文章,来帮助大家解决下载opencv时遇到的坑(网上的流程好多都是有问题的)
首先,opencv是程序员钟爱的开源计算机视觉库,有强大的开源社区和一些内置函数,所以opencv跟树莓派结合起来之后就可以干好多事,比如读取来自树莓派摄像头的picamera视频以及进行人脸识别等等,超超现在就在做这个事。
那么怎么安装opencv呢?别着急,超超带你一起看
一、首先配置好树莓派的Raspbian操作系统
我使用的是树莓派官网新推出的2018-11-13-raspbian,官网下载链接https://www.raspberrypi.org/downloads/raspbian/(现在好像有2019最新版了)但是不影响使用
咱们选择安装的是第一个:有桌面和推荐软件的
Raspbian Stretch with desktop and recommended software
我们可以直接下载也可以利用种子的形式进行下载,最后下载后应该会出现4.98GB大小的东西,我们需要把它解压成img格式(开始是zip)你会发现还是个压缩包的形式,不要着急,就是这样,然后我们将准备好的16GB以上的SD卡(用到读卡器)进行格式化,接着我们就开始烧录镜像了,这要用到2-Win32DiskImager,所以我们可以到官网进行下载https://sourceforge.net/projects/win32diskimager/files/latest/download
接着咱们就运行这个2-Win32DiskImager,会弹出一个小方框,咱们点击后面的一个类似文件夹的东西,然后浏览,将咱们的那个刚下载的img格式文件选择,最后点击下方的write,直到弹出write successfully就表明你烧录镜像成功了,接下来先不要着急拔卡,咱们要在SD卡的boot文件中打开后自己创建一个文档叫ssh(千万不要加.txt等格式),不用管它的提醒,我们继续创建,这样可以避免后面的一次插卡操作。
二、切换apt-get下载源和pip下载源
国外下载速度特别慢,所以我们需要切换到国内的清华源
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
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 -y upgrade
在第一行开头加#,将内容给注释掉,然后将下面的两行给拷贝上,后面的一串就是出现的代码,我们可以按ctrl+o按回车保存再ctrl+x退出到Nano编辑,接着执行下面的两行代码,会自动进行更新
接着给pip换源
sudo mkdir ~/.pip ls .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
接着保存并退出到Nano界面
在树莓派的命令行中输入
sudo raspi-config
用上下键和左右键进行切换光标
在弹出的界面中选择1.change User Password修改密码
然后4.Localisation Options
选择I1 Change Locale进行选择语言,打开后选择中国,选择时区的时候就默认是shanghai
接着5.Interfacing Options
选择p1 Camera打开摄像头
按下back后回到初始界面咱们再选择7.Advanced Options选择A1 Expand Filesytem将根目录扩展到这个SD卡,充分利用SD卡的存储空间
结束后咱们就Finish
安装中文字体 sudo apt-get install fonts-wqy-zenhei
安装中文输入法fcitx及Google拼音输入法(大约需要五分钟) sudo apt-get -y install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin 安装完毕,重启即可。ctrl+空格切换为中文输入法。哦,还要注意,那个咱们选择的是美式英语
三、
咱们要用到官方的picamera,按图中样子进行安装(提起来不掉下就可以了)
sudo nano /etc/modules执行此命令
再出现的蓝色字幕后加上
bcm2835-v4l2
先按键盘上的ctrl
+o
,再按回车保存,再按ctrl
+x
退出nano编辑器回到命令行界面。
输入
vcgencmd get_camera
raspistill -o image.jpg如果树莓派的文件夹中有image照片的话,证明摄像头安装成功
三、
在树莓派安装运行在Python3上的OpenCV
1、安装numpy
打开命令行界面,输入以下命令,安装Python科学计算库numpy
sudo pip3 install numpy
2、在树莓派设置中把根目录扩大到整个SD卡
命令行界面输入命令,进入树莓派配置界面。用上下键和左右键切换光标位置
sudo raspi-config
第七行:Advanced Options
选择Expand Filesystem,将根目录扩展到这个SD卡,充分利用SD卡的存储空间。如果不进行这一步,后续命令会出现卡死。退出设置界面,重启树莓派。(这里有提示框,问你是否重启)
没找到的话就sudo reboot
3、安装OpenCV所需的库
挨个运行下面八条命令。共需要七分钟(注意倒数第三条命令中要安装四个-dev软件包)。
4、下载OpenCV
opencv-3.4.0.zip
,把第二个压缩包重新命名为opencv_contrib-3.4.0.zip
解压这两个压缩包
cd /home/pi/Downloads unzip opencv-3.4.0.zip unzip opencv_contrib-3.4.0.zip
5、设置编译参数
设置编译参数
cd /home/pi/Downloads/opencv-3.4.0 mkdir build cd build
6、编译
最后一步,也是最重要的一步:编译
保证树莓派有至少5G的存储空间,建议本命令用树莓派桌面上的命令行工具运行,而不要使用远程ssh连接。因为执行命令时间太长,中途如果ssh断线的话无法得知是否已经安装完毕。
cd /home/pi/Downloads/opencv-3.4.0/build make
静待五个小时的编译。注意,在此期间,树莓派要供电充足,不要运行其它任务,以免因为内存不够什么的报错。
make
命令执行完成之后,执行下面的命令,执行命令需要一分钟:
sudo make install
7、在Python3上测试OpenCV
安装好之后,在命令行中输入python3
,回车
import cv2
回车
cv2.__version__
opencv就是这么安装的,接下来的人脸识别,超超只进行了第一步,
第1步:材料清单
主件:
树莓派3
500 万像素 1080p 传感器 OV5647 迷你摄像头模块
第2步:打开树莓派自带的python编译环境,打开后点击“file”之后再new file
import numpy as np | |
import cv2 | |
cap = cv2.VideoCapture(0) | |
while(True): | |
ret, frame = cap.read() | |
frame = cv2.flip(frame, -1) | |
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) | |
cv2.imshow('frame', frame) | |
cv2.imshow('gray', gray) | |
if cv2.waitKey(1) & 0xFF == ord('q'): | |
break | |
cap.release() | |
cv2.destroyAllWindows() |
将这代码在电脑上给设成txt后通过电脑上的win+R选择mstsc进行远端控制,将文件通过winscp传到树莓派上就可以啦,然后设置一个项目名称就着ctrl+F5执行,你会发现有两个界面正在将你的动态信息传给树莓派
好了,有些内容参考一些前辈的,希望能给大家带来帮助,谢谢,不喜勿喷!