基于OpenCV动态检测.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于OpenCV动态检测

基于OpenCV动态检测   摘 要 实现了一个基于OpenCV与机器视觉技术相结合的动态检测方法。在Visual Studio 2010结合OpenCV2.4.3的开发环境下,进行了摄像机抓取指定的视频帧、对抓取的帧图像进行灰度化处理、异常时将灰度化后的前景与背景差分、采用Otsu法确定动态阈值对差分图像进行阈值分割得到二值图、腐蚀膨胀二值图后计算非零点像素数判断场景中是否有物体移动。通过实验证明上述方法不仅对监控区域的动态物体检测效果很好,而且克服红外探测器自身的诸多问题。既可以沿用原有的监控摄像机,也可根据需要采用针孔和防暴等特殊摄像机以更好地实现安防监控的目的。   关键词 机器视觉;差分;Otsu法;阈值分割   中图分类号TP39 文献标识码A 文章编号 1674-6708(2013)103-0210-03   0 引言   目前,某些需要二十四小时严禁物体移动或者非法入侵的监控区域通常采用传统的主动红外对射探测器和监控摄像机来实现场景变化检测及录像功能。但上述组合存在很多难以解决的缺陷,探测器的安装高度影响探测精度,太低容易误报,太高则易漏报,而且极易遭到破坏而失去其功效等。反观图像本身的信息量非常大,远超过红外探测器所需要的,故采用机器视觉技术在现有的监控摄像机基础上就可以实现动态检测的功能。而且摄像机有很好的隐蔽性和监控范围大等特点可以较好地解决传统组合自身的缺陷。   机器视觉是利用计算机对视频(数字图像)进行有效的处理,识别满足相应条件的数字图像。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,它有一系列C函数和少量的C++类构成,轻量级而且高效地实现了图像处理和计算机视觉方面的很多算法。可以说基于OpenCV的机器视觉技术让摄像机有了认知能力,能够轻松准确地发现监控区域的动态变化。   1 动态检测   对监控区域内物体的运动进行检测即为动态检测。本文在基于OpenCV2.4.3和Visual Studio 2010环境下利用动态检测原理实现动态检测功能。其步骤为(以火燃烧过程为例):   1)从摄像机获取视频流并显示在对应控件上;   2)从视频流抓取背景帧A和设定的固定时间后的前景帧B,如图1所示;   对两帧做灰度化处??,即将RGB图转换为Gray图,如图2所示。   3)判断两帧灰度化后结果是否一致:一致说明监控区域无异常,返回到2);否则说明监控区域有异常,需继续进行判断;   4)用灰度化后的前景与背景帧做差分,如图3所示。并对差分结果进行阈值分割。差分是取前、背景中所对应的每一个像素点灰度值差的绝对值,阈值分割则将绝对值大于分割阈值的像素点置为1,即白点,反之即为0。可以看出,阈值的选取影响了最终判定异常区域的大小,而且随着监控区域光线的变化等因素影响,阈值应是介于0与255之间的一个自适应的动态变化值。   这里采用Otsu法,也称最大类间方差法,它的主要思想是按照灰度特性将图像划分为背景和目标两部分,划分依据为选取门限值,使得背景和目标之间的方差最大(背景和目标之间的类间方差越大,说明这两部分的差别越大,当部分目标被错划分为背景或部分背景错划分为目标都会导致这两部分差别变小。因此,使用类间方差最大的分割意味着错分概率最小)。其主要的实现原理为如下:   (1)建立图像灰度直方图(共有L个灰度级,每个出现概率为p):   (2)计算背景和目标的出现概率,计算方法如下:   上式中假设t为所选定的阈值,A代表背景(灰度级为0-N),根据直方图中的元素可知,Pa为背景出现的概率,同理B为目标,Pb为目标出现的概率。   (3)计算A和B两个区域的类间方差如下:   第一个表达式分别计算A和B区域的平均灰度值   第二个表达式计算灰度图像全局的灰度平均值;   第三个表达式计算A、B两个区域的类间方差。   (4)以上几个步骤计算出了单个灰度值上的类间方差,因此最佳分割门限值应该是图像中能够使得A与B的类间灰度方差最大的灰度值。在程序中需要对每个出现的灰度值据此进行寻优,并把该值作为阈值传进阈值分割函数中。   阈值分割后将得到一幅有异常区域(白点)的二值图像,然后对它进行腐蚀和膨胀运算,如图4所示。腐蚀和膨胀算法类似,本例是用一个3*3的结构元素(见图5)扫描图像中的每一个像素,用该结构元素中的每一个像素与其覆盖的像素做“与”操作:腐蚀时如果都为1,则该像素为1,否则为0;膨胀时如果都为0,则该像素为0,否则为1。经过腐蚀和膨胀计算后,可以有效去除噪声点和差分过程中的误差点,以保监控的有效性和可靠性。   5)计算膨胀后的二值图像非零点,即白点的像素数量。判断其与设定的值的关系,小于等于则认为是正常状态,否则认为监控区域有动态物体,

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档