概述
噪声分类
噪声有很多种分类方法,比如从频率上分,可以分为高频,中频,低频噪声
从色彩空间上分,可以分为luma noise亮度噪声与chroma noise彩色噪声。
从时态上分,可以分为fix pattern noise与temporal noise。Fix pattern noise 与时间无关,表现上看就是噪声幅度不随时间变化。Temporal noise是随时间变化,在低光下录制的视频中不断变化的细小信号就是temporal noise。
也有的分法把fix pattern noise定义为在图像行或者列存在的一条条的噪声,如下图所示。
Temporal noise视觉上是一种高频噪声。
噪声计算
均值
标准差
图像的标准差可以作为图像噪声水平的评价值。
按照如下曝光时间,每个曝光时间拍30张black 照片。
exp_time = [0.063, 1.003,16, 64,257,513,770,1027,1283,1540,1797,2054];
raw_avg = 0;
for kk = 0:30:(30*12-1)
for i = 1:30
fname = fileNames{kk+i};
fprintf('processing %s %dn', fname, kk+i);
raw = double(imread([fold fname]));
raw = raw(:,:,1);
raw_avg = raw + raw_avg;
end
raw_avg = raw_avg./30;
avg_signal((kk/30)+1) = round(mean2(raw_avg));
fpn_total((kk/30)+1) = std2(raw_avg);
fpn_col_exp((kk/30)+1) = std(mean(raw_avg,1));
% avg_sig_col_exp((kk/30)+1,:) = mean(raw_avg,1);
fpn_row_exp((kk/30)+1) = std(mean(raw_avg,2)');
% avg_sig_row_exp((kk/30)+1) = mean(raw_avg,2)';
如上计算,可以得到图像的平均信号,每个曝光的FPN noise,以及行,列FPN noise,行列均值。
把曝光逐渐增加,确保图像能够达到饱和,在10个曝光值,每个曝光值下拍30张flat field照片
raw_avg = 0;
temp_noise = zeros(30,480*752);
for kk = 0:30:(30*11-1)
for i = 1:30
fname = fileNames{kk+i};
fprintf('processing %s %dn', fname, kk+i);
raw = double(imread([fold fname]));
raw = raw(:,:,1);
raw_avg = raw + raw_avg;
temp_noise(i,:) = raw(:)';
end
raw_avg = raw_avg./30;
std_temp_noise = std(temp_noise,1);
avg_signal((kk/30)+1) = round(mean2(raw_avg));
temporal_total((kk/30)+1) = median(std_temp_noise);
如上计算,可以得到图像的temporal noise
最后图像饱和,所以噪声降低至0。
FPN noise是相关噪声,temporal noise是不相关噪声。
两个图像相加:
S代表信号
代表temporal noise
信噪比SNR
当 , 信噪比SNR
当 , 信噪比SNR
该公式从理论上证明了n帧平均会降低temporal noise `$n^{0.5}$` 倍。所以信号处理中去除temporal noise的方法就是多帧平均加运动检测,如果存在图像存在变化就不累加,如果图像无变化就累加平均。
而FPN noise 是相关噪声
当,时,
多帧平均不会降低FPN。
通过上图可以看出,经过多帧平均后,噪声的floor变成了FPN。
通过多帧平均可以分离temporal noise和FPN,然后用其他信号处理的方法去除FPN,下一篇将介绍去噪的Spacial domain 和 transform domain的方法。
最后
以上就是干净砖头为你收集整理的FPN固定模式噪声的全部内容,希望文章能够帮你解决FPN固定模式噪声所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复