超超最近参加了学校里一位特别厉害的老师讲的课(两天,我就从一个小白然后了解了树莓派以及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方式安装过程步骤简单些,消耗的时间也少 ...
随机推荐
-
关于UIView的显示问题
今天在倒腾PP助手SDK的接入,游戏框架使用的是cocos2d-x,因为不熟悉iOS的UIKit,所以费了点功夫终于让SDK的登录页面显示出来了,问题来了,在iOS设备landscape显示模式UI显 ...
-
CocoaPods的安装[转载]
[转载] 原地址http://www.tuicool.com/articles/7VvuAr3 觉得很好,很有用 iOS 最新版 CocoaPods 的安装流程 1.移除现有Ruby默认源 $gem ...
-
iOS开发代码规范
1.关于命名 1.1统一要求 含义清楚, 尽量做到不需要注释也能了解其作用,若做不到,就加注释 使用全称不使用缩写 1.2类的命名 大驼峰式命名:每一个单词的首字母都采用大写字母例子: MFHomeP ...
-
Intent的属性介绍
在Android系统的设计中有四大组件:Activity,Service,BroadcastReceiver,ContentProvider.Intent可以被应用于ContentProvider之外 ...
-
【leetcode】62. Uniqe Paths
题目 https://oj.leetcode.com/problems/unique-paths/ A robot is located at the top-left corner of a m ...
-
bootsrtap (-)
1.text-muted:提示,使用浅灰色(#999).text-primary:主要,使用蓝色(#428bca).text-success:成功,使用浅绿色(#3c763d).text-info:通 ...
-
oldboy s21day06
#!/usr/bin/env python# -*- coding:utf-8 -*- # 1.列举你了解的字典中的功能(字典独有).'''dic.keys() 获取所有keydic.values() ...
-
【git】之使用shell脚本提交代码
为减少提交步骤,防止提交错误,使用Shell脚本进行git提交不失一件好事 #!/bin/sh # @author Hubal # @Email Hubal@123.com # @createBy - ...
-
【HDFS API编程】查看HDFS文件内容、创建文件并写入内容、更改文件名
首先,重点重复重复再重复: /** * 使用Java API操作HDFS文件系统 * 关键点: * 1)创建 Configuration * 2)获取 FileSystem * 3)...剩下的就是 ...
-
浅析多线程的对象锁和Class锁
一.前言 本来想在另外一篇文章说的,发现可能篇幅有点大,所以还是另开一篇博文来说好了.知识参考<Java多线程编程核心技术>,评价下这本书吧——大量的代码,简单的说明,真像在看博客.不过这 ...