超超最近参加了学校里一位特别厉害的老师讲的课(两天,我就从一个小白然后了解了树莓派以及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. 如何调用别人提供的webservice接口

    当我们拿到一个接口的时候,先别急着去调用它,我们得先测试这个接口是否正确,是否能调用成功,以及返回的数据是否是我们需要的类型等等.这时候我们需要一个工具,比如SoapUI.(最好用绿色免安装版的.)然 ...

  2. scrapy框架学习第一天

    今天是学习的第一天: 知识总结如下: 1,调试器相当于原料出口地(URL提供) 2,scrapy相当于中间加工商(具有销售权利)封装URL为request(请求) 3,下载器使用request(请求) ...

  3. Spring IoC和AOP使用扩展

    Spring提供了设值注入,构造注入等依赖注入方式. 使用p命令空间可以简化属性注入的配置. Spring提供的增强处理类型包括前置增强,异常抛出增强,环绕增强,最终增强等. 通过Schema形式将P ...

  4. Tomcat服务器提示:The server is temporarily unable to service your request due to maintenance downtime or capacity problems

    今天网站突然不能访问了,这里做一下记录提示: The server is temporarily unable to service your request due to maintenance d ...

  5. DevExpress之TreeList控件用作导航使用说明

    最近项目用的是DEV界面框架, 由于各控件属性太多,以免遗忘.所以做个笔录.也方便有这方面需求的网友交流学习.下面开始讲解具体实现步骤. 一.先布局,设置相关属性. 1.首先到工具箱拖一个 TreeL ...

  6. Mad libs

    Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32 Type &q ...

  7. pseudo-class与pseudo-element的不同点与相同点

    关于两者的区别,其实是很古老的问题.但是时至今日,由于各种网络误传以及一些不负责任的书籍误笔,仍然有相当多的人将伪类与伪元素混为一谈,甚至不乏很多CSS老手.早些年刚入行的时候,我自己也被深深误导,因 ...

  8. error: ‘module’ object has no attribute ‘_rebuild_tensor_v2’

    import torch._utils try: torch._utils._rebuild_tensor_v2 except AttributeError: def _rebuild_tensor_ ...

  9. Shiro-Spring 授权操作

    Subject进行Shiro的授权操作,首先委托给Security Manager,在由Security Manager 委托给Authenticator,由Authenticator授权器进行真正的 ...

  10. Qt 文件的操作

    文件操作是应用程序必不可少的部分.Qt 作为一个通用开发库,提供了跨平台的文件操作能力.从本章开始,我们来了解下 Qt 的文件以及输入输出的功能,也就是 I/O 系统. Qt 通过QIODevice提 ...