树莓派3B+ 安装计算机视觉库(OpenCV_3+OpenCV_Contrib_3)

来源:互联网 发布:芯片设计工程师 知乎 编辑:程序博客网 时间:2024/06/05 19:49

树莓派3B+ 安装计算机视觉库(OpenCV_3+OpenCV_Contrib_3)

计算机视觉是一项应用于计算机模式生物视觉的新技术,它使得计算机能代替人眼实现对目标的识别、分类、跟踪和场景理解。
计算机视觉是人工智能的重要分支,是未来发展的前沿科技,所以学习OpenCV这个开源、跨平台的计算机视觉库就显的非常有必要了。


笔者此次给大家带来的版本具体是:python2.7+opencv_3.3.1+opencv_contrib_3.3.1

注意:请保持opencv和opencv_contrib版本相同!

如果安装不能如愿,可以直接安装官方源版本:opencv2.4.9+opencv_contrib2.4.9
或者使用安装好了的: docker (python2.7+OpenCV3.1.0+OpenCV_Contrib3.1.0)


对于未更新软件源导致下载失败的,可参考:
修改 国内软件源:http://blog.csdn.net/kxwinxp/article/details/78370980


提供安装所需的包:(由于csdn积分低,资源大小受限,故提供第三方下载链接)
OpenCV3.3.1+OpenCV_Contrib3.3.1+get-pip.py[提取码:9m5e]

1.安装OpenCV 3.3.1

安装教程参考:https://github.com/Tes3awy/OpenCV-3.2.0-Compiling-on-Raspberry-Pi

安装脚本如下:(编译安装大约需要4小时左右,请保证网络畅通!!)

#!/bin/bashPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATH# 安装基本的依赖项:sudo apt-get install -y build-essential cmake pkg-config# 安装和图像相关的库:sudo apt-get install -y libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev# 安装视频IO包:sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libv4l-0 libv4l-dev libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev# 安装highgui相关的依赖库:sudo apt-get install -y libgtk2.0-dev# 安装opencv进阶依赖库,操作矩阵等:sudo apt-get install -y libatlas-base-dev gfortran# 其它一些库sudo apt-get install -y python-numpy python-scipy python-matplotlib ant libgtkglext1-dev v4l-utils# -----------此处为沙盒环境,可选择安装--------------# 下载pipwget https://bootstrap.pypa.io/get-pip.py  # 安装pip工具sudo python get-pip.py# 安装virtualenv沙盒工具sudo pip install virtualenv virtualenvwrappersudo rm -rf ~/.cache/pip# 将沙盒环境变量写入~/.profileecho -e "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7 \n export WORKON_HOME=$HOME/.virtualenvs \n source /usr/local/bin/virtualenvwrapper.sh \n export LD_LIBRARY_PATH=/usr/lib/:$LD_LIBRARY_PATH" >> ~/.profile# 更新状态source ~/.profile# 创建沙盒环境mkvirtualenv p2cvworkon p2cv# 这时可以看到已经进入沙盒环境(p2cv)pi@raspberrypi # 如果想离开沙盒环境,执行deactivate# -----------------沙盒环境安装结束---------------# 安装numpypip install numpy# 安装比较漫长,若报没有权限的错误,执行sudo rm -rf ~/.cache/pip/# -------正式开始准备opencv和opencv_contrib---------# 下载OpenCV 3.3.1和OpenCV_contrib库:#在pi user下# 下载OpenCV 3.3.1:wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.3.1.zip# 解压OpenCV 3.3.1:unzip opencv.zip# 下载OpenCV_contrib库:wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.3.1.zip# 解压OpenCV_contrib库:unzip opencv_contrib.zip# --------编译和安装OpenCV 3.3.1---------# 进入opencv3.3.1目录:cd opencv-3.3.1/# 新建build文件夹:mkdir build# 进入build文件夹:cd build# 配置cmake(这一步直接粘贴所有行到你的terminal即可):sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \    -D CMAKE_INSTALL_PREFIX=/usr/local \    -D INSTALL_PYTHON_EXAMPLES=ON \    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.1/modules \    -D BUILD_EXAMPLES=ON ..# 编译:(由于使用make j4容易报错,故换成make)make# 安装:sudo make install# 把OpenCV生成的动态链接库加入树莓派目录:sudo ldconfig# 安装python插件# sudo apt-get install -y python-picamera python-pil python-tk# 为沙盒环境引用类库cd ~/.virtualenvs/p2cv/lib/python2.7/site-packages/ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so

2.测试OpenCV

// 打开python命令状态python>>> import cv2>>> print cv2.__version__the following line should appear then:'3.3.1'// 完成安装!

3.开启树莓派摄像头

sudo raspi-config// 选择 5 Interfacing Options// 将Camera 设置为 Enable// 拍取一张照片raspistill -o photo.jpg// 可在当前位置看到photo.jpg文件则为正常!

4.开启cv2直接对摄像头的调用

由于对于非USB摄像头,树莓派不会自动添加到设备列表,(即看不到 /dev/vide0),则需要手动添加进去。

// 编辑模块管理配置文件sudo vim /etc/modules-load.d/modules.conf // 尾部添加一行 bcm2835-v4l2// python 测试脚本#!/usr/bin/env python#coding=utf-8import cv2capture = cv2.VideoCapture(0)// 设置像素大小# capture.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, 480)# capture.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, 320)while True:    # 获得帧    ret, frame = capture.read()    print "frame.shape: {}".format(frame.shape)    # 显示帧(需要安装了图像界面的raspbian版本)    cv2.imshow("capture", frame)    # 当摁下q键,关闭    if cv2.waitKey(1000 // 12) & 0xff == ord("q"):        breakcv2.destroyAllWindows()