时域高通滤波算法(THPF)

今天介绍一下图像非均匀校正中的场景校正算法-时域高通滤波算法(Temporal High Pass Filtering, THPF)以及它后续的各种改进版本。空域和频域已经在之前的文章介绍过一些了,时域还没有。图像是二维空间域上的像素,随着时间的延续,每秒25、30、60帧,就成了视频,针对视频进行图像处理,就可以考虑增加一个时间维度,图像帧与帧之间是存在相关性的,结合时域滤波算法可以有效去除图像中的噪声和探测非均匀性问题。

红外焦平面阵列 (Infrared Focal Plane Arrays,IRFPAs) 由于制造工艺和外部因素影响存在响应非均匀 性问题, 即其所构成的成像系统即使在相同辐射输入的条件下,探测单元的输出也不一致,最终在输出图像上呈现出固定图案噪声,从而严重地影响了成像质量和图像信噪比。目前对于非均匀性校正主要分为两类:一类是基于参考辐射源的定标算法,如两点校正法和多点校正法;另一类是基于场景 的校 正 算 法 ,如时域高通滤波法、神经网络法、恒定统计法和卡尔曼滤波法。后者是利用对场景信息的估计来实现非均匀性校正, 不需要暂停成像系统的工作来重复定标,因此是目前的研究热点。

1. 时域高通滤波非均匀性校正算法

时域高通滤波法是一个时间域的统计滤波器,其基本思想是假设非均匀性处在背景杂波之中,且在图像中随着时间变化相对比较缓慢,而人眼感兴趣的目标信号相对于背景杂波在像平面上运动比较快,所以可以通过时域低通滤波的方法将含噪图像在时域上分解成目标信号( 高频分量) 和背景杂波(低频分量) 两部分。将原始信号与低通滤波器的结果取差即可得到高频分量,即目标信号,从而构成一个高通滤波器,其具体公式表述如下:


通过时域不断迭代得到经过校正第n帧的输出图像,实现过程很简单很经典,效果一般,快速移动目标会有“鬼影”残留,所以需要后续不断改进。

2. 空域低通时域高通非均匀性校正算法

由于影响THPF算法收敛速度与其鬼影问题的根本原因在于大量无关的场景信息被参与到非均匀性校正参数的计算过程中,所以只要尽可能将更多的场景信息,特别是强物体从原始图像中排除,再将剩下的部分参与到非均匀性校正参数的计算过程,这样就可以尽可能减小非随机运动与场景中强物体对校正过程的影响,有效减少鬼影效应。根据这个思想,SLPF-NUC 预先采用空域滤波器将输入的图像信号进行分离。由于在空间上,场景中目标信号具有连续相关性,表现为空域低频性,而非均匀性是由各探测器阵列元独立产生,各阵列元对应的输出的非均匀性差异较大,表现为空域高频性,所以应用空域滤波器将原始信号分离成高频( HSF) 和低频( LSF) 两个部分,只利用高频部分参与非均匀性的校正。

最早的算法中采用了空域线性均值滤波器,场景中的边缘信号同时被平均,所以可以引入一个阈值Th,大于阈值时,可认为它是场景的边缘,置零,不参与非均匀性的校正。后续不断升级低通滤波器,SLPF(空域均值滤波高通非均匀性校正算法)->BFTH(空域双边滤波高通非均匀性校正算法)->GFTH(空域引导滤波高通非均匀性校正算法)->NLMTH(空域非局部均值滤波高通非均匀性校正算法)。也可以通过添加运动检测判断、自适应权重系数对算法进行改进,效果越来越好的同时,算法实时硬件实现的难度也在不断提高。

MATLAB代码实现:

clear;
close all;
clc;%% 初始化
frameWidth  = 640;
frameHeight = 512;
M = 200;      % 时间参数
image(:,:,:) = zeros(512,640,100);
image_low(:,:,:) = zeros(512,640,100);
image_high(:,:,:) = zeros(512,640,100);
hsize = 5;
H = fspecial('average',hsize);%% 帧间迭代
for k = 2:100%读取序列图像fileName = ['.\序列图像\(', num2str(k), ')', '.Raw'];image(:,:,k) = double(reshape(uint16(fread(fopen(fileName),'uint16')),[frameWidth frameHeight])');   image_low(:,:,k)=filter2(H,image(:,:,k));image_high(:,:,k) = image(:,:,k) - image_low(:,:,k);image(:,:,k) = 1/M * image_high(:,:,k) + (1-1/M)*image(:,:,k-1);
end image_x(:,:) = image(:,:,k);%% 测试图像
filename    = '第100帧.Raw';
fid         = fopen(filename);
image_raw   = fread(fid,'uint16');
image_raw   = uint16(image_raw);
fclose(fid);
data_temp  = reshape(image_raw,[frameWidth frameHeight]);
image_raw   = data_temp';
image_raw = double(image_raw);
image_out = image_raw - image_x;%% 输出结果图
figure(1);imshow(image_raw,[]);title('原图像');
figure(2);imshow(image_out,[]);title('SLPF效果图');

时域高通滤波算法(THPF)相关推荐

  1. 图像降噪算法——时域降噪算法

    图像降噪算法--时域降噪算法 图像降噪算法--时域降噪算法 1.<MeshFLow Video Denoising> 2. <Real-Time Video Denoising On ...

  2. C语言LMS双麦克风消噪算法,基于两个时域LMS算法双麦克风系统分析.doc

    基于两个时域LMS算法双麦克风系统分析 基于两个时域LMS算法双麦克风系统分析 [摘要] 本文介绍了基于两个时域LMS算法的双麦克风系统结构以及性能分析.本文提出一种采用两个时域LMS的算法,并将此算 ...

  3. 基于C语言实现离散时域积分算法

    时域积分 公式如下: 由于实际应用时传感器采样得到的点都是离散的,因此我们常常需要用到的是离散时域积分算法,对离散点的积分就是求和. matlab实现积分算法: % 积分 clc; t=0:1/100 ...

  4. 2020最佳双人博弈对抗方法 | 基于强化学习对手建模的滚动时域演化算法「AI核心算法」...

    关注:耕智能,深耕AI脱水干货 作者:唐振韬  报道:深度强化学习 CASIA 转载请联系作者 前言 格斗游戏是一项极具挑战的双人实时对抗人工智能博弈任务,常具有组合动作空间规模大.角色属性风格多样. ...

  5. 数字定时误差检测算法系列之 ———时域Gardner算法

    1.Gardner 算法简介 Gardner 算法是一种非数据辅助,实现复杂度低,广泛应用于实际工程中的一种定时误差检测算法.Gardner 算法具有如下特点: 1). 工作于2倍采样率,每个码元需要 ...

  6. C# RC低通,高通滤波算法

    参考文章: https://www.sohu.com/a/233360876_466960 参考文章:https://blog.csdn.net/qq_34040067/article/details ...

  7. 数字图像处理——高斯低通、高通滤波算法

    通过代码来分析如何对图像进行高斯滤波 先放镇楼图: 1. 读取图像,转灰度图像 I = imread('lena.bmp'); %读取原图像 I = rgb2gray(I); %原图像转灰度图像 i_ ...

  8. No.02 色散补偿 TSM算法 时域离散采样方法 MATLAB Python 代码实现

    一定先看这篇预备知识全网首篇用人话讲清楚:光纤中的色散 对于单模光纤传输系统,色散补偿按照是否与偏振有关分为两部分,色度色散的补偿在第一部分,称这部分为静态均衡(均衡和补偿是同义词). 所谓静态就是对 ...

  9. matlab中lms m,LMS算法仿真(Matlab)

    程序1:基本LMS算法 % 该程序实现时域LMS算法,并用统计的方法仿真得出不同步长下的收敛曲线 clear % 清空变量空间 g=100; % 统计仿真次数为g N=1024; % 输入信号抽样点数 ...

最新文章

  1. 2020 年最具潜力 44 个顶级开源项目,涵盖 11 类 AI 学习框架、平台(值得收藏)
  2. 可能用到的C# WinForm技术小结
  3. 2015年去哪儿网Qunar面试题
  4. java基础知识1---面向对象及final,finally,finalize区别
  5. python2.7多线程的批量操作远程服务器
  6. 2013年最值得我们学习的网页作品示例【系列六】
  7. datagrid 什么时候结束编辑_孕吐到底什么时候结束
  8. L3-025 那就别担心了 (30 分)-PAT 团体程序设计天梯赛 GPLT
  9. win10系统如何查找字体库位置+在matplotlib散点图中的应用+散点图中显示不了中文
  10. 在 Python 中使用网格搜索和随机搜索进行超参数调整
  11. 20155236 《信息安全概论》实验二(Windows系统口令破解)实验报告
  12. Android Performance之工具篇(1)-systrace
  13. youtube下载助手 firefox插件
  14. 上帝视角-我是一个线程『转』
  15. 前端做微信好友分享_前端实现微信平台实现分享
  16. xp,linux双系统,如何在XP下安装linux实现双系统!
  17. android11.0 12.0Launcher3禁止拖拽app图标到第一屏
  18. python 英文关键词提取_python TF-IDF算法实现文本关键词提取
  19. 小伙利用C++实现U盘热插拨监听程序,走上人生巅峰
  20. group normalization

热门文章

  1. 全网最细之HiveQL语句操作
  2. WordPress上传图片提示:服务器无法处理图像
  3. 在windows10 64位系统上使用debug命令
  4. 贵州省教师计算机培训,省教育厅办公室关于举办2017年中小学教师信息技术与学科教学教研深度融合专题培训班的通知...
  5. react的refs属性
  6. CSDN平台上怎么样才能赚钱?
  7. mcpc2017 Honey Heist (模拟)
  8. springdata JPA配置
  9. 利用 Python 和 Selenium 自动下载知网期刊文件
  10. Android 滑动切换(首页展示,图片、新闻自动切换,循环切换,自动和手动)