树莓派3 B+ 的摄像头简单使用(video-streamer)
一、首先在某东上购买树莓派摄像头
我的买的硬件张这个样子的(CSI接口摄像头):
正视图 后视图
当然我买的不是正版的,价格在50多块钱吧。所以也不算很贵,买回来看看,电路也不算特别的复杂,自己做的话应该也是没有问题的~(注意买回来的摄像头前面都是有一个小的透明薄膜的,但是很影响摄像头的成像效果,用的时候撕掉它,不用的时候可以去掉。)
简单阐述了解CSI接口摄像头参考:http://www.cnblogs.com/lifan3a/articles/5010633.html):
- 全称CMOS Sensor Interface(CSI)
- 前端-配置逻辑接口以便支持大多数通用的可用的CMOS摄像头接口。
- 支持CCIR656视频接口以及传统的摄像头接口。
- 8位数据口,支持方便YCC,YUV,Bayer或者是RGB的数据格式输入。
- 完全可控的8-bit或16-bit数据到32-bit的FIFO进行打包
- 32*32大小的FIFO存储接受到的的图像像素数据,该FIFO可以通过可编程的IO或者是DMA进行读取.
- 后端-提供了直接到eMMA的预处理PrP块接口(PrP和PP组成了MX27图形加速器eMMA,PrP和PP能够用来给视频做预处理和后期处理,例如,放大,缩小,颜色转换)
- 提供sensor的可屏蔽中断源,该中断源也是中断可控的: 开始Frame,结束Frame,Change of Field,FIFO Full
- 提供给外部sensor用的,可配置的主时钟频率
- 由统计数据产生的自动曝光(AE)和自动白平衡(AWB)控制。
二、接下来开始安装驱动使能树莓派的相关模块:
首先使用 ls指令来查看是否加载到了对应的video device设备:
ls -al /etc
所以没有发现我们的设备,接下来要做的是添加摄像头的驱动程序.ko文件和对应的raspiberry B3+的硬件使能问题:
1、添加驱动程序文件进来:
sudo vim /etc/modules
在最后添加如下的代码:
bcm2835-v4l2
这样就完成了在启动过程中加载camera驱动的前提,注意一个问题就是/etc/modules文件的修改权限是super admin所以,记得使用sudo vim /etc/modules.
2、修改Raspberry的启动配置使能项:
sudo raspi-config
得到如下的配置界面:
选择Interfacing Option,选中Select然后Enter进入,如下图所示:
接下来机会问你是否同意使能Pi camera,选择是然后会让你重启,,重启就好了:
选择 “是”
3、重启完之后,我们的基本的操作就完成了,下来来看看/dev下面是否存在摄像头设备的问题:
ls -al /dev/ | grep video
好得,没问题了,找到了我们想要的看到的设备:video0 device
注:可能提示这样的问题(如果在以上工作都完成的情况下,摄像头还是不能正常的使用或者驱动,请先检查硬件的连接的问题,可能是排线没有很好的插稳,或者是摄像头本身的问题。):
mmal mmal_vc_component_create failed to create component 'vc ril camera' (1:ENOMEM)
mmal mmal_component_create_core could not create component 'vc ril camera' (1) mmal Failed to create camera component
mmal main Failed to create camera component
mmal Camera is not detected. Please check carefully the camera module is installed correctly
上面的问题参考这里:http://blog.sina.com.cn/s/blog_e4008c660101hkd9.html
三、下面简单的使用操作树莓派的摄像头:
1、我们使用rapistill指令来截图(当你在运行此指令的时候,树莓派上的指示灯会亮哦~):
raspistill -o image.jpg
采集的效果如下所示:
这里我们看到采集的图片的大小是2592X1944=5038848大约就是500W的像素了。看起来也是非常的清晰啦~确实很满意的啊!!
这里讲一下raspistill命令的相关参数和实验的具体效果:
-v:调试信息查看
-w:图像宽度
-h:图像高度
-rot:图像旋转角度,只支持 0、90、180、270 度(这里说明一下,测试发现其他角度的输入都会被转换到这四个角度之上)
-o:图像输出地址,例如image.jpg,如果文件名为“-”,将输出发送至标准输出设备
-t:获取图像前等待时间,默认为5000,即5秒
-tl:多久执行一次图像抓取
执行下面的指令:
raspistill -o image%d.jpg -rot -w -h -t -tl -v
接着下面就会输出一系列的捕获的信息,
如图片的大小,
图片的总捕获时间,
图像是否旋转,
是否水平反转垂直反转:
下面是最后的捕获的结果:
注:这里解释一下图片的采集数量和-t参数以及-tl参数的相关关系:N_Picture = -t(获取图像前等待时间)/-tl(多久执行一次抓取时间) + 1。所以有20000/5000+1 = 5张图片
2、使用raspivid指令来生成.h246的文件
raspivid -o mykeychain.h264 -t -w -h
这样就会在当前文件夹下面生成mykeychain.h264的文件:
如果你想改变拍摄时长,只要通过 "-t" 选项来设置你想要的长度就行了(单位是毫秒)。
如果你想改变图像的分辨率,使用 "-w" 和 "-h" 选项将分辨率降为 1280x720等等。
四、使用VLC等来实现http的视屏流传输:
1、首先需要在你的树莓派上面安装VLC的软件
sudo apt-get update
sudo apt-get install vlc --fix-missing
sudo apt-get install vlc
2、启动你的树莓派摄像头
sudo raspivid -o - -rot -t -fps |cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8080}' :demux=h264
3、打开你PC机电脑上的VLC软件,选择打开网络串流(Ctrl+N),输入上面指令的端口号以及对应的树莓派的IP地址
(如下图所示我的树莓派的IP地址是192.168.1.129),运行结果如下图所示,当然也发现http的视频流的确比较卡,当然我采用的视频的画质是500W像素的画质,所以视频的质量比较差,当我将视频的画质调节到720*360时,感觉非常的流畅。(@局域网测试环境)
http://192.168.1.129:8080
后续在使用Python Opencv来控制调用树莓派的摄像头做些有意思的东西~
五、使用Raspiberry自带的摄像头python接口picamera库+Opencv来控制调用Camera
官网的Document参考:http://picamera.readthedocs.io/en/release-1.13/index.html
可以参考这里的完整教程:https://robocoderhan.github.io/
也可以参考我的另一篇博客:http://www.cnblogs.com/uestc-mm/p/7606855.html
完~
树莓派3 B+ 的摄像头简单使用(video-streamer)的更多相关文章
- 树莓派3 之 USB摄像头安装和使用
需求 如果你想在树莓上拍照或者录影,你可以安装树莓派的摄像头(有点贵).如果你不想要为摄像头模块花费额外的金钱,那有另外一个方法,就是你常见的USB 摄像头.你可能已经在PC上安装过了.我买的如图的这 ...
- 树莓派安装kali后的简单配置
树莓派可以说是极客的最爱,可以根据不同的需求去做定制. 前文<使用树莓派和kali Linux打造便携式渗透套件>讲了一些使用树莓派的基础,主要侧重于将树莓派当作一个物理后门使用.我则更喜 ...
- 利用树莓派跑python爬虫的简单教程——从无到有
因为学校项目的原因入手了树莓派,到手先折腾了两天,发现网上的教程大都是拿他搭建服务器,mail,或者媒体服务器之类,对于在学校限时的宽带来说有点不太现实,不过低功耗适合一直开着的确启发了我.所以想到拿 ...
- Qt Opencv 在Linux下摄像头简单示例(转)
下面写的文章也许网上也有类似的,但是大多数都没有给出思路及背景,让初学者每次都只能学到一点皮毛,不少知识需要大量搜索零碎地拼凑起来.题外话,虽然现在是碎片化信息时代,但正是这样信息整合能力也显得非常重 ...
- 【智能无线小车系列九】在树莓派上使用USB摄像头
材料准备: 1.树莓派 2.AS 4WD小车 3.WebCam 4.小米移动电源 5.TP—LINK 高增益150MUSB无线网卡 操作流程: 1.将WebCam插上树莓派后,首先要确认树莓派是否支持 ...
- Android Things:树莓派3上手就是这么简单
http://blog.csdn.net/p106786860/article/details/54566620 ——————————————————————————————————————————— ...
- 树莓派:使用OpenCV调用自带的摄像头.
总所周知,树莓派上,调用摄像头的指令有raspistill和raspivid.若要使用opencv对摄像头进行调用,不少人会出现 cvCaptureFromCAM(0)函数无法找到Pi Cam的错误情 ...
- html 通过input video canvas 打开摄像头 定制相机
在机缘巧合之下,了解到用HTML5和javascript调用摄像头来实现拍照功能,今天就把大致原理写下来.页面布局很简单,就是一个input标签,两个HTML5元素video.canvas和一个but ...
- Python实现树莓派摄像头持续录像并传送到主机
关于树莓派,想必从事嵌入式开发的开发者都有听过,树莓派原名为Raspberry Pi,也就是它的英文读法,树莓派诞生于英国,由"Raspberry Pi 基金会"这个慈善组织注册开 ...
随机推荐
- MySql COUNT(),SUM()组合用法
需求:统计工作室表的数量,按创建时间分组 问题:按创建时间分组,如何将计数后的结果求和 解决:用COUNT(DISTINCT col_name)讲每行计数为1,再求和分组 SELECT DATE_FO ...
- Ext.form.RadioGroup
var radiogroup = new Ext.form.RadioGroup({ id:'sex', parentColor : true, fieldLabel:'性别', width: 100 ...
- python学习总结(函数进阶)
-------------------程序运行原理------------------- 1.模块的内建__name__属性,主模块其值为__main__,导入模块其值为模块名 1.创建时间, ...
- 手工删除crfclust.bdb文件
环境:RHEL 6.5 + Oracle 11.2.0.4 RAC 现象:巡检发现自己的测试环境节点2的空间使用率过高,进一步查询,发现大文件是GI目录下crfclust.bdb文件. crfclus ...
- springboot 入门一 hello world!
微服务框架springboot,目的是用来简化新Spring应用的初始搭建以及开发过程.简化的代价,就是约定俗成很多规则,比如默认读取的配置文件名是application.properties 必需在 ...
- 从概念到业务来看 To B 和 To C 产品区别在哪?
自从互联网火了以后,一大堆 o2o,b2b,c2c 的产品出现,这些名词也渐渐为人熟知,但很多人对这些产品的理解也是停留在概念上,实际上绝大部分人用的都是 To C(也写作2c)产品,比如微信,qq ...
- 软工+C(2017第2期) 分数和checklist
// 上一篇:题目设计.点评和评分 // 下一篇:超链接 教学里,建立清晰明确的评分规则并且一开始就公布,对于教师.助教.学生都是重要的. 公布时机 在课程开始的时候,就需要确定并公布评分机制,随着课 ...
- 结对编程四则运算gui
码市地址:https://git.coding.net/linzhao/sizeyunsuangui.git 林 钊 -- 201421123105 吴世荣 -- 201421123119 王坤彬 - ...
- 201521123088《Java程序设计》第6周学习总结
1. 本周学习总结 2. 书面作业 clone方法1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么? ...
- 201521123003《Java程序设计》第5周学习总结
1. 本章学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 参考资料: 百度脑图 XMind 2. 书面作业 Q1.代码阅读:Child压缩包内源代码 1.1 com.parent包中C ...