本帖最后由 eew_7QI3Yq 于 2024-11-3 23:27 编辑
时光照相机
作者:eew_7QI3Yq
一、作品简介
本次作品主要是记录生活的,把我们的日常记录下来,时间过的很快,外界变化通过相机可以完美的记录下来,前面有相机延时摄影记录,我自己也做一个,而且价格上很便宜,同时集成很多功能,可以访问我的NAS,把每天记录的保存下来,同时我加了一个系统自动生成每天的一个延时摄影之后的图片生成的视频。同时视频中图片增加上每天的时间水印,温度,湿度,大气压的水印。同时我为其搭建了可以远程访问的服务,实时画面我也做到显示上了,这样远程还能作为监控使用了。
二、系统框图
硬件框图,主要使用树莓派,外接的是USB摄像头,当然也可以选择CSI摄像头,但是不便于拓展,USB可以延长很远,BME280是硬件设备,采集外部温湿度,大气压。
主要记录当时的各种环境参数。
三、各部分功能说明
首先这是我的软件界面,软件上有实时显示窗口,有摄像头设备选择,摄像头的信息是直接显示的,也是自动打开的,他是支持热插拔,这样好处就是在断开后也可以自己连接打开,下方的间隔采样,是间隔多长时间保存下图片,可以自己设置,这样就可以根据自己需求保存,每天记录的图片再第二天开始时对前一天的的图片做视频处理,输出一个简短的视频。
首先是这个,设备监测,QT5有完整的摄像头类可以直接使用,监听变化看是否是拔出还是插入,插入后就直接默认打开第一个摄像头。
之后就是打开摄像头的,我们增加QVideoProbe类进行探测摄像头的操作,主要就是给其增加水印,下面的是设置摄像头输出的格式,分辨率。
摄像头的YUYV格式没法直接处理,需要转换为RGB进行处理,添加水印,和保存。
从这里增加,文件夹创建,同时可以对前一天摄像头采集图片数据进行一个视频转换输出。
通过时间判断,是否过了第二天,然后启动线程输出视频文件。线程好处就是主界面不会卡住,还照样是实时画面。
视频输出中使用FFMpeg来进行,同时用image2pipe,因为我们存的图片原因,所以我们只能通过这种方式才能输出有效的视频。
看看我们通过rustDesk创建的远程连接,rustDesk比较简单,直接下载安装包安装即可。需要自己搭建一个服务器。
这是安装包。
视频播放用内置的VLC播放器即可。
四、作品源码
五、作品功能演示视频
六、项目总结
本次通过树莓派搭建的这个系统,在使用NAS的情况下,可以很好存储下每天的信息,同时生成简要视频概览,可以自己直接查看了,每天记录下这些信息可以看到变化,同时我们有代码可以非常方便的,生成月记录,年记录,从每天图片抽出来即可,后面可以继续优化他,这样方便用户自定义使用。
七、其他
本次项目基于QT5,本来里面还打算用openCV的,同时源码中也是做了,树莓派中直接用案例会很方便,WIN端也可以编译运行,同时后期可以在win端加上FFMpeg这样就可以直接WIN调试了。
|