- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Emgu运动目标监控系统设计实现
基于Emgu运动目标监控系统设计实现
摘 要:本设计是基于开放视觉图形处理库Emgu对捕获的视频图像进行处理,实现视频图像进行显示与跟踪,动态监控画面,并对视频进一步分析,捕获画面中的运动实体,并把重要信息保存到数据库,提供信息检索修改等操作。
关键词:Emgu 视频运动检测 运动目标检测
中图分类号:TP391.41 文献标识码:A 文章编号:1672-3791(2013)07(a)-0018-02
随着现代电子技术和计算机智能技术的发展,视频监控也由模拟走向数字化,走向智能化、人性化。工作人员可以摆脱在长长的录像带中去寻找过时的信息,由智能系统及时准确地报告所需要的信息。真正地实现产生风险预防和干预,尽量减少由于不及时的信息给生产带来的损失。本文设计的视频监控系统基于开放视觉图形处理库Emgu对捕获的视频图像进行处理,实现视频图像进行显示与跟踪,动态监控画面。
1 系统设计
本系统大体上可以分为两大部分,第一部分为视频动态视频的图像处理,是本系统的主要组成部分;第二部分为信息的查阅管理功能,是系统的附加功能。
1.1 动态视频的分析技术和方法
背景差法是目前视频图像中的运动目标检测算法中最常用的一种方法,该方法一般能够检测出较为完整的运动目标。在动态视频中,序列图像亮度的变化是运动检测的重要基础。在一般情况下运动的前景目标与背景的灰度值有比较大差别,而背景物体与运动物体本身的灰度值不会有太大的变化。因此通过图像差分就能很好地反映两帧图像之间的差别,如果能够得到这些差别信息,就能对运动目标进行提取为进一步的运动特征分析做准备。
设当前帧图像,背景图像为,所以差分求得的二值化图像为。
(1)
在式(1)中,前景运动目标为二值化图像中的灰度值为255的像素点。由此可以检测出视频中的运动物体。
1.2 捕获信息的保存
为了管理方便,本系统使用的数据库为SQLite。当进入到信息维护界面时,首先将监控系统所采集的历史信息加载历史信息窗口,历史信息窗口的主要区域是一个表格控制,用以显示查询的信息。历史信息窗口的右边是一个图像预览区域,通过预览区域可以看到被记录的图像,如图1。在历史信息表格中记录数据的编号,复选框,ID号,捕获信息的时间,预览按钮和备注信息,通过备注信息可以看到与每一张图片相关的记录信息,也可以通过编辑备注栏,将信息反写回数据库,以便以后的查阅。
2 运动目标检测与处理的实现
2.1 建立背景模型
获取了视频图像,就是对图像进行下一步的处理。首先创建历史对像,它是建立背景模型的基础:
MotionHistory _motionHistory = new MotionHistory(
1.0, // 按秒计算, 要保存多久的历史信息
0.05, // 按秒计算, 要考虑两帧之间的时间差的最小值
0.5); // 按秒计算,要考虑两帧之间的时间差的最大值
第二步是建立背景模型,这里用的是混合高斯背景模型,在EmguCv中封装了建立高斯背景模型的算法,保用类BGStatModel就能得到该模型。
BGStatModel _forgroundDetector = new BGStatModel(frame_Emgu,Emgu.CV.CvEnum.BG_STAT_TYPE.FGD_STAT_MODEL);
2.2 检测运动目标
以上这两步是建立背景模型和运动检测的重要基础,得到了历史对像和识别对像后,再进行下面的步骤。
步骤一,更新图像帧和背景模型,以自适应环境变化。将新的图像帧传入背景检测器中:
_forgroundDetector.Update(frame_Emgu);
更新背景图像历史动态信息:
_motionHistory.Update(_forgroundDetector.ForgroundMask);
图像的灰度化以及滤波除噪,得到除噪后的灰度值,代码如下:
Image grayImage = _motionHistory.Mask;
Image motionMask = grayImage.Mul(255.0 / maxValues[0]);
Image motionImage = new Image(motionMask.Size);
motionImage[0] = motionMask;
根据上面的代码就可以根据动态对像的大小创建新的图像,创建动态对像,以存储识别的结果,其中第一通道用蓝色显示运动像素点。
步骤二,获取取所有的运动实体,并对这些实体进行判断和标记,判断是根据阀值与每个运动实体的比对结果
文档评论(0)