树莓派+openCV物联网工程(一)

OpenCV配合树莓派Rasperry Pi,通过读取PiCamera视频,进行人脸识别、边缘检测、语义分割、自动驾驶、图像识别等各种计算机视觉开发。

谷歌人工智能框架Tensorflow和人脸识别开源项目face_recognition,都需要安装OpenCV。

 树莓派图像处理部分使用的开源计算机视觉环境 OpenCV


1.0OpenCV

知乎:OpenCV图像处理教程

OpenCV是开源计算机视觉库(Open Source Computer Vision Library)是一个开源BSD库,该库包括数百个机器视觉算法。

  • core -一个定义基本数据结构的模块,包括多维数组和其它模块使用的核心函数
  • imgproc-图像处理模块,包括线性非线性滤波,几何图像变化(尺寸变换、仿射、透视、基于表的映射),图像域卷积,直方图等
  • video-视频分析模块,包括运动检测,背景移除,目标跟踪。
  • calib3d-多视图几何算法,一维和三维相机jiaozheng2,目标位置估计,立体匹配算法,三维重构。
  • features2d - 特征检测和描述匹配
  • objdetect -类(如人脸、眼睛、人、车等)的检测
  • highgui-视频抓取、图像以及视频编码接口
  • gpu- GPU对OpenCV不同模块算法的加速
  • ...一些帮助性模块,如FLANN和谷歌测试封装,Python等

图像处理(Image Processing)是用计算机对图像进行分析,以达到所需结果的技术。图像处理技术一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。
计算机视觉(Computer Vision)是指用摄像机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使之成为更适合人眼观察或仪器检测图像的一门学科。


1.1Rasperry Pi

wiki极客学院RPi介绍

1.2配置树莓派的操作系统Raspbian

raspi-config参数设置

$sudo raspi-config

中字下载 

sudo apt-get update
sudo apt-get install ttf-wqy-zenhei ttf-wqy-microhei

 

1.3 树莓派 vim

树莓派自带的 vim 不是很好用,比如默认不支持小键盘及方向键等,我们可以更新一下

sudo apt-get install vim

1.4树莓派网络设置

使用 vi 打开以下文件进行修改:

auto lo
iface lo inet loopback
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid "j123456"
wpa-psk "hellworld"
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

1.5配置树莓派官方的摄像头Picamera


2Rasperry Pi+OpenCV

2.1python上安装OpenCV

在Python2上的安装OpenCV非常简单,几行命令即可搞定。在Python3上的OpenCV安装比较麻烦,需要编译安装。

sudo apt-get install libopencv-dev
sudo apt-get install python-opencv

Python环境下测试OpenCV运行情况 

import cv2

 cv2版本号

cv2.__version__

2.2调用树莓派摄像头,把画面显示在桌面上

git clone https://github.com/TommyZihao/opencvtest.git
cd opencvtest
python2 testopencv.py

 open camera

VideoCapture cap(0); //capture the video from web cam 
if ( !cap.isOpened() )  // if not success, exit program 
{ 
cout << "Cannot open the  cam" << endl; 
return -1; 
}

 打不开:重启(reboot)

 

待续