图像中运动检测、提取与滤波算法

本文介绍了运动检测的算法,包括差影法、结果帧的比较与后移函数,以及针对噪声的优化策略。接着讨论了运动区域提取的算法,采用自适应背景图象更新方法,并通过一阶递归滤波器生成背景图象。最后提到了形态滤波算法,利用腐蚀和膨胀操作消除突刺和填充小孔,以改善二值图象效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.运动检测的算法

1.算法目的:

在一个的运动图象帧序列中,把其中图象几乎无变化的连续几帧滤掉,仅剩下图象有变化的帧序列

 

2.算法思想:

使用差影法,将前后两帧图象进行相减,并对相减得到的结果帧进行检测,如果结果帧几乎为空帧,则认为这两帧图象无变化,并把无变化的帧删掉;否则认为这两帧图象有变化,并把它们保存在结果队列中

 

3.算法描述:

31从管道中读入图象帧,每次比较当前帧和下一帧,对它们相应象素点的灰度值进行相减,如果差值不为0,则把结果帧相应的象素点的灰度值赋为1,然后对结果帧中灰度值为1的象素点进行统计,如果和大于某个阀值,则认为这两帧的图象有变化,否则无变化。

32如果连续的两帧图象有变化,则将它们以及各自相应的位置标志保存在结果队列中

33如果连续的两帧图象无变化,则比较当前帧和下n

331如果当前帧和下n帧无变化,并且当前帧和下n/2帧也无变化,则认为当前帧到下n帧图象都没有变化,则把这一段图象序列滤掉

332如果当前帧和下n帧有变化,或者当前帧和下n/2帧有变化,则n=n/2,重新比较当前帧和下n帧,直到n=2时停止

 

程序结构:

全局变量:

         first=>当前帧指针

         second=>下一帧指针

         gif_no =>帧号

         fore_pol=>当前帧位置

         back_pol=>下一帧位置

         add_start=>数据区头指针

         Len=>一帧象素点的个数

BEGIN

从管道中读出第一、二帧赋予firstsecond

gif_no=0

fore_pol=0;

back_pol=0;

do

first=add_start+Len*fore_pol;

second=add_start+Len*back_pol;

if  比较函数(first, second)为真

then   gif_no++

back_pol++

fore_pol++

      first, second往后移一帧

      将当前帧及相应的帧号放入结果队列

else   调用后移函数(P0, P1,n)

      将经过检测得到的图象帧及相应的帧号放入结果队列

      (gif_no, back_pol, fore_pol都在后移函数中修改而得新值)

until  命令停止

END

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值