树莓派安装OpenCV3完整过程的实现
作者:kyoRan 发布时间:2023-11-06 06:26:08
标签:树莓派,安装,OpenCV3
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() # 关闭所有窗口
测试结果如下
来源:https://blog.csdn.net/kyokozan/article/details/79192646
0
投稿
猜你喜欢
- bootstrap的button边框问题最近在线上学习bootstrap时,发现很多童鞋都会遇到很多坑,有些很容易掉进去就出不来了;boot
- 这篇博客将介绍Canny边缘检测的概念,并利用cv2.Canny()实现边缘检测;Canny边缘检测是一种流行的边缘检测算法。它是由约翰F开
- Python中进行Base64编码和解码要用base64模块,代码示例:#-*- coding: utf-8 -*-import base6
- anaconda用法:查看已经安装的包:pip list 或者 conda list安装和更新:pip install requestspi
- 1. 前言文章主要围绕着以下三个问题:group by的作用where与having的区别表的连接分为哪些,分别是什么作用2. 表的设计在创
- 1、实现的效果示例代码:df=pd.DataFrame({'A':[1,2],'B':[[1,2],[1,2
- 24小时内记录(即86400秒)$sql="Select video_id,count(id)as n FROM `rec_dow
- 1.创建表:drop table if exists photo;CREATE TABLE photo (  
- 假设我们有一段程序,从 Redis 中读取数据,解析以后提取出里面的 name 字段:import jsonimport redisclie
- 本文结合OpenCV官方样例,对官方样例中的代码进行修改,使其能够正常运行,并对自己采集的数据进行实验和讲解。一、准备OpenCV使用棋盘格
- 本文实例讲述了python比较两个列表大小的方法。分享给大家供大家参考。具体如下:L1 = [1, ('a', 3)]L2
- 本文实例为大家分享了基于numpy实现逻辑回归的具体代码,供大家参考,具体内容如下交叉熵损失函数;sigmoid激励函数基于numpy的逻辑
- 在java的应用中,我们经常会对数据库进行必要的操作,下来我们就了解一下如何用java连接mysql数据库 以及java连接sql serv
- Pandas是一个用于数据分析和操作的Python库。在pandas中几乎所有的操作都围绕着DataFrame。Dataframe是一个二维
- 题:取表table中100条-200条之间数据 方法1:临时表 select top 200 * into #aa from table o
- 说明1、模型集成是指将一系列不同模型的预测结果集成在一起,从而获得更好的预测结果。2、对于模型集成来说,模型的多样性非常重要。Diversi
- 前言Vue 原本有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-
- 1、os.path 方法# -*- coding: utf-8 -*-# !/usr/bin/pythonimport osimport s
- 最近为了熟悉一下 js 用有道翻译练了一下手,写一篇博客记录一下,也希望能对大家有所启迪,不过这些网站更新太快,可能大家尝试的时候会有所不同
- Django结合ajax进行页面实时更新踩过的坑简单记录一下在使用Django、echarts和ajax实现数据动态更新时遇到的一些坑: 1