利用树莓派来安装opencv从而来调动摄像头工作(没有坑,超超自己试过)
超超最近参加了学校里一位特别厉害的老师讲的课(两天,我就从一个小白然后了解了树莓派以及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
用电脑在https://pan.baidu.com/s/182NYJzW1nCpnQ7ftSYYuSw#list/path=%2F下载这两个压缩包之后再用Fillzilla或者U盘等方法把文件传输到树莓派的/home/pi/Downloads目录下(一定不能错)。载之后,把第一个压缩包重新命名为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执行,你会发现有两个界面正在将你的动态信息传给树莓派
好了,有些内容参考一些前辈的,希望能给大家带来帮助,谢谢,不喜勿喷!
利用树莓派来安装opencv从而来调动摄像头工作(没有坑,超超自己试过)的更多相关文章
- ubuntu 14.04 下利用apt-get方式安装opencv
转载,请注明出处:http://blog.csdn.net/tina_ttl 目录(?)[+] 标签(空格分隔): Linux学习 OpenCV ubuntu 1404 下利用apt-get方式安装O ...
- 树莓派3b安装opencv
前言:最近买了一个CSI接口的摄像头,最准用树莓派做人脸识别项目.树莓派上本身已经安装了python2.python3,最开始通过sudo apt-get install python3-opencv ...
- 利用Anaconda软件安装opencv模块
先说明我安装opencv环境的原因:因为我Anaconda中创建了tensorflow和pytorch虚拟环境,想在每个虚拟环境下都安装opencv模块,这样在后期进行代码调试的时候更加便捷,以下是我 ...
- 树莓派pip安装opencv报错,Could not find a version that satisfies the requirement cv2 (from versions: )No matching distribution found for cv2
前言 我在使用pip install opencv-python 时报错 Could not find a version that satisfies the requirement opencv ...
- 树莓派3B/3B+和4B安装OpenCV教程
安装前准备 在树莓派上拓展文件系统 如果你使用的树莓派为新装的系统,那么第一件事情就是扩展文件系统,以包括microSD卡上的所有空间. 具体步骤如下: 1.在树莓派终端(或者SSH)上输入: $ s ...
- 树莓派通过apt方式安装opencv库
1.安装opencv 开始之前进行必要的更新工作. sudo apt-get update 安装opencv. sudo apt-get install libcv-dev 安 ...
- [树莓派(raspberry pi)] 02、PI3安装openCV开发环境做图像识别(详细版)
前言 上一篇我们讲了在linux环境下给树莓派安装系统及入门各种资料 ,今天我们更进一步,尝试在PI3上安装openCV开发环境. 博主在做的过程中主要参考一个国外小哥的文章(见最后链接1),不过其教 ...
- [软件开发技巧]·树莓派极简安装OpenCv
树莓派极简安装OpenCv 个人主页–> https://xiaosongshine.github.io/ 因为最近在开发使用树莓派+usb摄像头识别模块,打算用OpenCv,发现网上的树莓派O ...
- 树莓派学习笔记——apt方式安装opencv
0.前言 本文介绍怎样在树莓派中通过apt方式安装opencv.并通过一个简单的样例说明怎样使用opencv. 相比于源码方式安装opencv,通过apt方式安装过程步骤简单些,消耗的时间也少 ...
随机推荐
- js 中innerHTML,innerText,outerHTML,outerText的区别
开头说下innerText和outerText只在chrome浏览器中有效 定义和用法 innerHTML 属性设置或返回表格行的开始和结束标签之间的 HTML,包括标签. 来看代码 <!DOC ...
- shell脚本实现git和svn统计log代码行
实现的功能 git 根据传入的三个参数:起始统计日期.结束统计日期.git仓库地址. 脚本统计的是git仓库内的所有分支的log信息. 脚本统计的是指定时间段内.每一个提交人指定的git地址的所有分支 ...
- php不用正则表达式实现身份证号验证详解
写了一个身份证号验证类,php小白,写的不好,欢迎各位大神给我多提意见和建议 身份证号分为四部分,第一部分是前6位为地址码,7-14位是出生日期,15-17位是同一地方同一天出生的男孩为奇数,女孩是偶 ...
- ESP32搭建1.VMware Workstation 12.5下Ubuntu16.04环境搭建(简易搭建)
一.需要下载的资源: 1. 下载VMware Workstation 链接: https://pan.baidu.com/s/1nuDEc3n 密码: 89xc 2. 下载Ubuntu ...
- C++中_T的用途
1 C++语言中“_T”是什么意思? Visual C++里边定义字符串的时候,用_T来保证兼容性,VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到uni ...
- SecureCRT通过SSH2协议远程登录Ubuntu 18.04的过程总结
reference: https://blog.csdn.net/ghostar03/article/details/47441715 https://blog.csdn.net/u011186256 ...
- sprindmvc
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模 ...
- PHP安装过程中问题详解
安装Apace时我就犯了一个大错误.因为我的母语是JAVA,我以为Tomcat就是Apache.其实不然,Tomcat是给Java用的,处理JSP等的动态页面. 而PHP则是单纯的用Apache安装A ...
- Java并发知识分享
volatile的内存语义 从JSR-133(即从JDK1.5开始),volatile变量的写-读可以实现线程之间的通信 当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值刷 ...
- c++ string 转double
#include <iostream>#include <sstream> //使用stringstream需要引入这个头文件using namespace std; Type ...