红外图像帧间降噪

红外图像帧间降噪

Blog: https://blog.csdn.net/AnimateX

Email: semi_xiaobai@qq.com

这里写图片描述

1 为什么要进行帧间降噪

1.1 红外图像噪声分类

1 时域噪声
2 空域噪声
先谈时间噪声。顾名思义,随着时间变化也会发生变化的噪声即时域噪声。也就是随着图像的帧数的增加,图像中的目标可能会产生模糊或者拖影的情况,如何滤除这个拖尾和模糊的情况也就是我们要如何去除时域噪声。

1.2 去除时域噪声的优点

如前所述,要滤除时域上的噪声我们就需要做运动检测,检测运动物体,最典型、最简单的做法就是使用帧间差分去实现。帧间差分的思想:“如果场景(帧)内没有运动目标,则连续帧的变化很微弱,如果存在运动目标,则连续的帧和帧之间会有明显地变化”。帧间差分比较典型的又有两帧差分或者三帧差分。这里先考虑两帧差分。
如图1所示,为帧间差分的流程。

这里写图片描述

图1 帧间差分流程

2 帧间差分理论

如图1所示,第n+1帧图像和第n帧图像,分别表示为前帧和后帧图像。这里用 f f 表示图像矩阵,f(i,j)表示位置在 (i,j) ( i , j ) 的像素点。主要计算公式如公式1和公式2所示。

Diff(i,j)=fn+1(i,j)fn(i,j)(1) D i f f ( i , j ) =∣ f n + 1 ( i , j ) − f n ( i , j ) ∣ ( 1 )

R(i,j)={fn+1(i,j),fn+1(i,j)+fn(i,j)2,Diff(i,j)>Threldothers(2) R ( i , j ) = { f n + 1 ( i , j ) , D i f f ( i , j ) > T h r e l d f n + 1 ( i , j ) + f n ( i , j ) 2 , o t h e r s ( 2 )

通过公式(1)和公式(2)计算运动点,并作出相应的处理。如果针对可见光,则直接判定‘移动’后做二值化处理,再做连通性分析,最后再进行判定。

2 总结

FPGA上对图像进行时域滤波,需要实现的是无拖尾,图像不模糊。这需要很高的阈值作为基础。但是这就会造成弱目标(移动缓慢、像素值变化不大)的像素点移动无法识别。如果考虑弱目标的移动,降低阈值,则会导致拖影现象。总体来讲,在时域上有一定的滤波作用。

Code

function imgOut = MFNR( imgIn )
    [M, N, num] = size( imgIn );
    flag = XX;
    imgOut = zeros(M, N, num);

    imgOut(:, :, 1) = imgIn(:, :, 1);
    for i = 2 : num
        temp   = zeros(M, N);
        bFrame = imgIn(:, :, i - 1);
        aFrame = imgIn(:, :, i);
        differ = abs( aFrame - bFrame );

        sp = find(differ < XX);
        mp = find(differ >= XX);
        temp(sp) = (aFrame(sp) + bFrame(sp)) / 2;
        temp(mp) = aFrame(mp);
        imgOut(:, :, i) = temp;
    end
end
  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值