盲元检测与补偿算法总结

盲元检测与补偿算法总结

总结了近年来22篇盲元检测与补偿算法论文中算法的类型、窗口大小和创新点,也复现了部分算法之后有时间再分享。

红外探测器是红外成像系统中最重要的器件,它是由对红外辐射敏感的半导体材料制成。在制作这种半导体时难免会出现材料掺杂不均的问题,这就会引起红外探测器各探测单元的光电转换特性曲线形成不一致,盲元就是由于这种特性曲线的不一致性过大而造成的。盲元最常见的表现形式是红外图像中固定或者随机出现的亮点或者暗点,由于响应过大而形成的亮点称为过热像元,由于响应过小而形成的暗点称为死像元。盲元响应特性不稳定的响应会随时发生变化的盲元,表现为时暗时亮的盲元点被称之为闪盲元。
在这里插入图片描述
现有算法包括传统标定法、线性外推法、三西格玛法、TMOE法、背景预测法和其他算法等,总结如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 基于背景预测的盲元检测算法

通过将待检测图像分解为盲元目标和一般背景,建立迭代修正的背景预测模型提高预测准确度,并根据盲元和正常像元的残差能量统计差异完成单帧图像盲元检测。 依据盲元缓变特征, 利用建立的背景预测模型和盲元检测结果设计补偿算法, 实现了单帧和序列图像的快速盲元补偿。
背景预测模型对实际图像 X 进行估计来获取理想图像 Y。 典型的背景预测模型可以抽象为:
在这里插入图片描述
式中:T 是背景预测的空域模板;w 是背景预测模型的权重矩阵。M(i+m,j+n)是图像(i+m,j+n)位置的盲元蒙版,该点是盲元时,M(i+m,j+n)=0;是非盲元时,M(i+m,j+n)=1。

算法流程图如下:
在这里插入图片描述
MATLAB代码实现:

function [M,num] = nep_BP(image_raw,frameHeight,frameWidth,k,su)
%% 基于背景图像预测
Y = zeros(frameHeight,frameWidth);
E = zeros(frameHeight,frameWidth);
M = ones(frameHeight,frameWidth);

%% 背景预测模型的权重矩阵w
w = zeros(3,3);
for m = 1:3
    for n = 1:3
       if (m-2) == 0 && (n-2) == 0
           w(m,n) = 0;
       else
           w(m,n)=1/(sqrt((m-2)^2+(n-2)^2));
      end
    end
end
s = sum(sum(w));
w = w./s;
%% 迭代-求盲元蒙板M
for count = 1:su
    for i = 1: frameHeight-3
       for j = 1: frameWidth-3

         for m = 1:3
             for n = 1:3
            Y(i,j)= w(m,n)*M(i+m,j+n)*image_raw(i+m,j+n);
            E(i,j)=image_raw(i,j)-Y(i,j);
             end
         end
        end
    end    
    
    E_aver = abs(mean(mean(E)));
    for i = 1: frameHeight-3
       for j = 1: frameWidth-3
         if abs(E(i,j)-E_aver) <= k*E_aver
            M(i,j) = 1;
         else
            M(i,j) = 0;
         end   
        end
    end 
end

%% 统计盲元个数
num = 0;
for i = 1:frameHeight-3
    for j = 1:frameWidth-3
        if M(i,j)== 0 
            num = num+1;
        end
    end
end
end




猜你喜欢

转载自blog.csdn.net/weixin_45355387/article/details/123855255