红外探测器是红外成像系统中最重要的器件,它是由对红外辐射敏感的半导体材料制成。在制作这种半导体时难免会出现材料掺杂不均的问题,这就会引起红外探测器各探测单元的光电转换特性曲线形成不一致,盲元就是由于这种特性曲线的不一致性过大而造成的。盲元最常见的表现形式是红外图像中固定或者随机出现的亮点或者暗点,由于响应过大而形成的亮点称为过热像元,由于响应过小而形成的暗点称为死像元。盲元响应特性不稳定的响应会随时发生变化的盲元,表现为时暗时亮的盲元点被称之为闪盲元。
基于背景预测的盲元检测算法
通过将待检测图像分解为盲元目标和一般背景,建立迭代修正的背景预测模型提高预测准确度,并根据盲元和正常像元的残差能量统计差异完成单帧图像盲元检测。 依据盲元缓变特征, 利用建立的背景预测模型和盲元检测结果设计补偿算法, 实现了单帧和序列图像的快速盲元补偿。
背景预测模型对实际图像 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); %% 背景预测模型的权重矩阵ww = zeros(3,3); form = 1:3forn = 1:3if (m-2) ==0&& (n-2) ==0w(m,n) = 0; elsew(m,n)=1/(sqrt((m-2)^2+(n-2)^2)); endendends = sum(sum(w)); w = w./s; %% 迭代-求盲元蒙板Mforcount = 1:sufori = 1: frameHeight-3forj = 1: frameWidth-3form = 1:3forn = 1:3Y(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); endendendendE_aver = abs(mean(mean(E))); fori = 1: frameHeight-3forj = 1: frameWidth-3ifabs(E(i,j)-E_aver) <= k*E_averM(i,j) = 1; elseM(i,j) = 0; endendendend%% 统计盲元个数num = 0; fori = 1:frameHeight-3forj = 1:frameWidth-3ifM(i,j)==0num = num+1; endendendend