树莓派安装OpenCV3完整过程的实现

yipeiwu_com5年前Python基础

1. 配置并更新树莓派系统

sudo raspi-config // 进入后打开摄像头、SSH
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update

2. 安装OpenCV的相关工具

sudo apt-get install build-essential cmake git pkg-config

3. 安装OpenCV的图像工具包

sudo apt-get install libjpeg8-dev 
sudo apt-get install libtiff5-dev 
sudo apt-get install libjasper-dev 
sudo apt-get install libpng12-dev 

4. 安装视频I/O包

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

5.安装gtk2.0和优化函数包

sudo apt-get install libgtk2.0-dev
sudo apt-get install libatlas-base-dev gfortran

6. 下载OpenCV源码

可以在 [ OpenCV ] 查看所有版本源码

git clone https://github.com/opencv/opencv.git

7. 安装OpenCV

// 根据下载的版本而定
cd opencv-3.2.0 
// 创建release文件夹
mkdir release
// 进入release目录下
cd release
// cmake读入所有源文件之后,自动生成makefile
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local ..
// 编译
sudo make
// 安装
sudo make install
//更新动态链接库
sudo ldconfig

8. 解决无法打开摄像头硬件问题

sudo nano /etc/modules
// 进入编辑界面后,在末尾添加输入
snd-bcm2835
bcm2835-v4l2

添加硬件

9. 测试用例Python代码

# -*- coding: utf-8 -*-
__author__ = "kyoRan"

import cv2

cap = cv2.VideoCapture(0)          # 打开摄像头
print("VideoCapture is opened?", cap.isOpened())

while(True):

 ret, frame = cap.read()          # 读取摄像头图像
 center = (frame.shape[1]//2, frame.shape[0]//2)    # 图像中心点位置

 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)    # 转灰度
 cv2.circle(gray, center=center, radius=100, color=(0,0,255)) # 画圆
 cv2.imshow("frame", gray)         # 显示图片

 if cv2.waitKey(1) & 0xFF == ord('q'):
  break

cap.release()   # 释放摄像头
cv2.destroyAllWindows() # 关闭所有窗口

测试结果如下

测试结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python双向链表原理与实现方法详解

本文实例讲述了python双向链表原理与实现方法。分享给大家供大家参考,具体如下: 双向链表 一种更复杂的链表是“双向链表”或“双面链表”。每个节点有两个链接:一个指向前一个节点,当此节...

python数据结构之二叉树的建立实例

先建立二叉树节点,有一个data数据域,left,right 两个指针域复制代码 代码如下:# -*- coding: utf - 8 - *-   &nb...

跟老齐学Python之私有函数和专有方法

在任何语言中,都会规定某些对象(属性、方法、函数、类等)只能够在某个范围内访问,出了这个范围就不能访问了。这是“公”、“私”之分。此外,还会专门为某些特殊的东西指定一些特殊表示,比如类的...

Linux下python与C++使用dlib实现人脸检测

Linux下python与C++使用dlib实现人脸检测

python 与 C++ dlib人脸检测结果对比,供大家参考,具体内容如下 说明: 由于项目需求发现Linux下c++使用dlib进行人脸检测和python使用dlib检测,得到的结果...

利用Anaconda完美解决Python 2与python 3的共存问题

前言 现在Python3 被越来越多的开发者所接受,同时让人尴尬的是很多遗留的老系统依旧运行在 Python2 的环境中,因此有时你不得不同时在两个版本中进行开发,调试。 如何在系统中同...