树莓派_实现摄像头的拍照、监控与录像(Raspiberry PI Camera 5W)
学无止境
前言:大家好,欢迎来到誉雪飞舞的博客园,我的每篇文章都是自己用心编写,
算不上精心但是足够用心分享我的自学知识,希望大家能够指正我,互相学习成长。
转载请注明:https://www.cnblogs.com/wyl-pi/p/9822348.html
今天终于抽出空来写了,给大家分享一下。
首先,我们打开树莓派 LX 终端界面,输入命令:
sudo raspi-config
然后在camera选项中设置为enable;
Finsh保存退出;
拆开外壳的树莓派(七层黑白相间外壳保护)内部结构;
摄像头引脚卡槽的位置就在HDMI接口和火牛电源中间那个黑白相间的地方。
注意:绝对不可以带着电源的情况下插入摄像头,如果带电操作,十之八九你的摄像头会GG
连接500W像素CSI摄像头模块的树莓派它有四个热插拔USB插口,一个RJ-45接口,一个HDMI接口,一个电源接口,还有一个音频接口;
硬件上的安装:
非常类似于显卡内存的安装,首先将那个黑色的卡槽打开,切勿暴力拆除,如果很使劲都打不开,那不用怀疑了,你错了。
然后我们将金手指准卡槽里的引脚位置,插进去,按下卡槽,OK;
软件上的控制:
使用 raspistill 命令;
常用的命令如下:
raspistill -o image%d.jpg -rot -w -h -q -t -tl -v
-o image%d.jpg #保存文件为image%d.jpg( d 是从一开始,向后自加);
-rot 180 #镜头翻转180度,因为你连完线后它的那个折痕弯弧致使摄像头画面倒置的,
所以需要我们通过简单的命令就可以解决,不需要硬掰线之列的fight操作。
-w 1024 -h 768 #这个就是照片的宽与高了自行设置,太大可能会模糊失真最关键的是会增大它的存储空间,浪费资源。
-q 8 #就是英文quality质量的意思,堆头就是图像质量,q越大文件占用存储空间越大,自己根据满意的画面质量设置吧,挨个试。
数值8是我尝试出来的画面质量还可以而且占用空间仅有大约52k;
-t 20000 -tl 5000 #拍摄时间为20秒,并每间隔5秒拍摄一张以JPG为格式的,以image1.jpg、image2.jpg、image3.jpg......为命名的照片文件;
更多的高级操作以及效果我从网上找了很多的资料感觉这位仁兄写的不错,在此献上链接:
https://www.cnblogs.com/jikexianfeng/p/7130843.html
对了还有一件事一定要提一下,就是我们既然可以拿摄像头拍照,那怎么能就此罢休呢,我们怎么也得整出个视频来啊:
想要用摄像头模块拍一段视频的话,可以从命令行运行 raspivid 命令工具。
下面这条命令(长度5秒,视频流为每秒30帧,分辨率1920x1080,比特率 30Mbps)用来拍摄一段 FLV 格式的视频。
raspivid -o my_video.flv -rot -t -p -w -h
如果你想转换视频格式,可以使用 gpac 包中所带有的 MP4Box 应用;
在 Raspbian 上安装 gpac,输入命令:
sudo apt-get install -y gpac
然后将这段 flv 格式的视频流转换为每秒30帧的 .mp4 格式视频:
MP4Box -fps -add my_video.flv video_achieve.mp4
下面你可以通过学到的命令代码使用 Pi Camera 拍摄的一段实例视频了;
好了,现在我们既能拍照也能录视频当然还不止于此,,,,,,
实景操作拍摄:
在光线较弱的情况下画面会偏黄,我们通过命令修改代码可以自动调节(毕竟就只有30来块钱)
raspistill -o my_photo.jpg -rot -w -h -t -q -br -awd auto -ex auto
将画面的亮度饱和度与画面质量都提升。手机拍摄,效果有限。
总结:
写了这么多,好吧也不多,但总之呢我走的弯路我不希望那些入门的小白再浪费宝贵的时间去摸索,希望在这里给你们分享能够真的帮到你。
如果觉得我的文章还不错,关注一下,顶一下 ,我将会用心去创作更好的文章,敬请期待。
学无止境
最新文章
- Puppet自动化运维-C/S架构概念(1)
- 构建自己的PHP框架--实现Model类(1)
- ThinkPHP实现支付宝接口功能
- Scala学习笔记(八):基本类型和操作
- /run/systemd/private: No such file or directory
- php大力力 [023节]CREATE TABLE创建新表sql写字段备注(2015-08-27)
- 3-附1 ->;和*的区别
- c#调用系统资源大集合-3
- Android AlertDialog 设置setSingleChoiceItems不显示列表的原因【setMessage和setSingleChoiceItems不能同时使用】
- Android 显示YUV编码格式
- 历峰集团3.43亿美元收购Net-a-Porter剩余股权_财经_腾讯网
- RequireJS和JQuery的模块化编程
- rabbitmq-message(C#)
- VS2010打开旧版本MFC工程无对话框
- Android事件分发理解
- Spring - Bean的概念及其基础配置
- LeetCode 245. Shortest Word Distance III (最短单词距离之三) $
- Django ORM多表操作
- LodopJS文档式模版的加载和赋值
- activemq 消息类型
热门文章
- Train-Alypay-Cloud:蚂蚁金融云知识点
- Laravel5 cookie和session设置 Cookie::queue()自动添加
- windows服务器审核失败消息:事件ID: 861 进程标识符:904
- IO模型比较分析
- Py修行路 内置模块补充 datetime模块
- Python Twisted系列教程9:第二个小插曲,Deferred
- 清除stoped impdp/expdp job的方法
- Linux 学习笔记之 --- epoll 事件模型详解
- C++中使用TCP传文件
- c++多线程编程(三)