超超最近参加了学校里一位特别厉害的老师讲的课(两天,我就从一个小白然后了解了树莓派以及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软件包)。

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

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从而来调动摄像头工作(没有坑,超超自己试过)的更多相关文章

  1. ubuntu 14.04 下利用apt-get方式安装opencv

    转载,请注明出处:http://blog.csdn.net/tina_ttl 目录(?)[+] 标签(空格分隔): Linux学习 OpenCV ubuntu 1404 下利用apt-get方式安装O ...

  2. 树莓派3b安装opencv

    前言:最近买了一个CSI接口的摄像头,最准用树莓派做人脸识别项目.树莓派上本身已经安装了python2.python3,最开始通过sudo apt-get install python3-opencv ...

  3. 利用Anaconda软件安装opencv模块

    先说明我安装opencv环境的原因:因为我Anaconda中创建了tensorflow和pytorch虚拟环境,想在每个虚拟环境下都安装opencv模块,这样在后期进行代码调试的时候更加便捷,以下是我 ...

  4. 树莓派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 ...

  5. 树莓派3B/3B+和4B安装OpenCV教程

    安装前准备 在树莓派上拓展文件系统 如果你使用的树莓派为新装的系统,那么第一件事情就是扩展文件系统,以包括microSD卡上的所有空间. 具体步骤如下: 1.在树莓派终端(或者SSH)上输入: $ s ...

  6. 树莓派通过apt方式安装opencv库

    1.安装opencv     开始之前进行必要的更新工作. sudo apt-get update     安装opencv. sudo apt-get install libcv-dev     安 ...

  7. [树莓派(raspberry pi)] 02、PI3安装openCV开发环境做图像识别(详细版)

    前言 上一篇我们讲了在linux环境下给树莓派安装系统及入门各种资料 ,今天我们更进一步,尝试在PI3上安装openCV开发环境. 博主在做的过程中主要参考一个国外小哥的文章(见最后链接1),不过其教 ...

  8. [软件开发技巧]·树莓派极简安装OpenCv

    树莓派极简安装OpenCv 个人主页–> https://xiaosongshine.github.io/ 因为最近在开发使用树莓派+usb摄像头识别模块,打算用OpenCv,发现网上的树莓派O ...

  9. 树莓派学习笔记——apt方式安装opencv

    0.前言     本文介绍怎样在树莓派中通过apt方式安装opencv.并通过一个简单的样例说明怎样使用opencv. 相比于源码方式安装opencv,通过apt方式安装过程步骤简单些,消耗的时间也少 ...

随机推荐

  1. js 中innerHTML,innerText,outerHTML,outerText的区别

    开头说下innerText和outerText只在chrome浏览器中有效 定义和用法 innerHTML 属性设置或返回表格行的开始和结束标签之间的 HTML,包括标签. 来看代码 <!DOC ...

  2. shell脚本实现git和svn统计log代码行

    实现的功能 git 根据传入的三个参数:起始统计日期.结束统计日期.git仓库地址. 脚本统计的是git仓库内的所有分支的log信息. 脚本统计的是指定时间段内.每一个提交人指定的git地址的所有分支 ...

  3. php不用正则表达式实现身份证号验证详解

    写了一个身份证号验证类,php小白,写的不好,欢迎各位大神给我多提意见和建议 身份证号分为四部分,第一部分是前6位为地址码,7-14位是出生日期,15-17位是同一地方同一天出生的男孩为奇数,女孩是偶 ...

  4. ESP32搭建1.VMware Workstation 12.5下Ubuntu16.04环境搭建(简易搭建)

    一.需要下载的资源: 1.     下载VMware Workstation 链接: https://pan.baidu.com/s/1nuDEc3n 密码: 89xc 2.     下载Ubuntu ...

  5. C++中_T的用途

    1    C++语言中“_T”是什么意思? Visual C++里边定义字符串的时候,用_T来保证兼容性,VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到uni ...

  6. SecureCRT通过SSH2协议远程登录Ubuntu 18.04的过程总结

    reference: https://blog.csdn.net/ghostar03/article/details/47441715 https://blog.csdn.net/u011186256 ...

  7. sprindmvc

    Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模 ...

  8. PHP安装过程中问题详解

    安装Apace时我就犯了一个大错误.因为我的母语是JAVA,我以为Tomcat就是Apache.其实不然,Tomcat是给Java用的,处理JSP等的动态页面. 而PHP则是单纯的用Apache安装A ...

  9. Java并发知识分享

    volatile的内存语义 从JSR-133(即从JDK1.5开始),volatile变量的写-读可以实现线程之间的通信 当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值刷 ...

  10. c++ string 转double

    #include <iostream>#include <sstream> //使用stringstream需要引入这个头文件using namespace std; Type ...