各位论坛前辈,小弟想做一个关于视频移动侦测的技术实现,下面说说我的想法和疑惑,请各位大虾不吝赐教!
1、选用DirectShow
2、开发环境是VC++6.0
3、使用USB摄像头作为视频采集设备
4、使用ffdshow编解码器压缩采集的视频
5、(疑惑)希望选择OpenCV库用于移动侦测
我目前可以通过USB摄像头采集到视频,在录像的同时预览视频。
我希望实现的功能是,在预览视频的视频窗口中,如果发现有物体移动的话在视频上增加一个矩形,将该物体圈起来。
同时开始视频采集,如果一段时间内无物体移动,将不采集视频。
请告诉我如何实现,只讲原理也可以,最好能说明GE图,是否需要新增或自己写一个filter,加在图的哪一个filter后面或前面。虚心求教
------解决方案--------------------------------------------------------
写一个transform filter做检测,然后计算出矩形范围,修改矩形边缘的像素。
------解决方案--------------------------------------------------------
呵呵,使用OPENCV把
------解决方案--------------------------------------------------------
我也想做类似的东东,找了一些材料,大都是用OpenCV做的,也有用Matlab的,现在还在学习阶段,准备做成一个控件,或者嵌入到硬件中应用。
------解决方案--------------------------------------------------------
这个核心主要是算法,俺认为应按以下流程:
Camera视频采集 --> 转换成YV12/I420 ---> 移动侦测处理 ---> ffmpeg压缩 ---- >显示和保存
其中"移动侦测处理"可按以下流程:
图像灰度化 ----> 图像差异侦测 ----> 在原始图像中标记侦测目标
至于"图像差异侦测"有很多种算法可实现,如差影法, 光流法等,视具体项目和实时性要求。
你说的DS的Filter只是这些算法一个外壳包装,核心就是以上的东东