宽动态红外图像增强算法综述
回顾过去
带你回顾宽动态红外图像增强算法的历史进程,历来学者的一步步革命(新的算法框架提出),一步步改革(改进优化),从简单粗暴到细致全面。
正所谓是:改革没有完成时,只有进行时。没有完美的算法,也没有最好的算法,只有更好更优秀的算法。
展望未来
以现在看90年代的算法,那时候的算法是有点粗糙,但是正是在这一点点的积累上,才有了现在较之优秀完美的算法。
正所谓是:站在巨人的肩膀,我们看得更远,不积跬步无以至千里。

目录

为什么需要该算法?
摘要
主要的三类算法思路大致介绍
第一类:基于映射的宽动态图像增强算法
第二类:基于图像分层的宽动态图像增强算法
第三类:基于梯度域的宽动态图像增强算法
三类算法的对比与优缺点分析

1.关于为什么需要宽动态红外图像增强算法?
详见我之前的文章《数字细节增强算法的缘由与效果(我对FLIR文档详解)》
https://blog.csdn.net/hahahahhahha/article/details/102978112.

2.摘要:
从三类算法开始介绍,基于映射的宽动态图像增强算法,基于图像分层的宽动态图像增强算法,基于梯度域的宽动态图像增强算法。

3.主要的三类算法思路大致介绍
早期的算法(大概1999年之前),主要是基于映射的。实现简单,复杂度低,但是细节不够凸显。
为此,学者提出了基于图像分层的算法(大概是从2001年开始),这种算法是将原始图像分为基础层和细节层,然后分别处理,以保证在压缩动态范围的前提下凸显细节信息,这类算法在细节增强上有了很大提升,但是容易产生 梯度反转 和 光晕现象。
为解决 梯度反转 和 光晕现象,学者又提出了基于梯度域的算法,但是不如第二类算法的细节效果好。

4.第一类:基于映射的宽动态图像增强算法
包括有:自增益的线性映射,Gamma 曲线,直方图投影等。

4.1 自增益的线性映射**
Iout(i,j)=255*Iin(i,j)/(max(Iin)-min(Iin));
最大值和最小值都是去掉极值之后得到的。
如何去极值呢?留给你自己思考吧。

4.2 Gamma 曲线
不同的Gamma参数 对应不同的效果,时好时坏,得手动调试,无法自适应。
还有就是无法消除或者越过“空缺灰度值”,因为gamma曲线无法做到分段处理。

4.3 借助直方图
4.3.1 最原始的直方图均衡
在某些场景上效果不错,但是缺点也很明显,过度增强,噪声过度放大,丢细节,褪色。

4.3.2 平台直方图均衡
最原始的直方图均给我们带来了一种高对比度的视觉体验,但它问题多多。
就丢细节这一点,FLIR在它的文档中已经明确说明:FLIR的DDE不是HE(直方图均衡)。我的这篇文章中对此有说明 https://blog.csdn.net/hahahahhahha/article/details/102978112.
它的水洗效果washed-out褪色 ,它的噪声放大更是无法容忍。
因此,学者又提出了一些优化办法。1995年,Vickers 提出了基于阈值的平台直方图均衡算法(plateau histogram equalization ,PHE) 。

4.3.3 自适应直方图均衡
1987年,PIZER等人还提出了自适应直方图均衡算法(adaptive histogram equalization ,AHE),这是一种不同于最原始的直方图均衡它是分区域的,从此打开了直方图均衡的另一扇窗,大家才知道原来还可以这么玩,也便有了“全局global”和“局部local ”之说。
AHE的优点是能够凸显局部细节,但是其缺点也是很恼人的,那就是很容易放大噪声。

4.3.4 限制对比度的自适应直方图均衡
1994年,ZUIDER VELD提出了对比度限制的自适应直方图均衡(CLAHE)算法,发表了举世瞩目的经典论文《contrast limited adaptive histogram equalization 》(强烈推荐学习),在算法在医学图像处理,安检图像处理有着非常广泛的应用。该算法从娘胎里就带来了光晕现象,还需改善。
MATLAB的Image toolbox 中有相关函数adapthisteq,我个人觉得:输入参数为手动,不能自适应,只是16-16,或者8-6,不适用于16bit到8bit 的红外图像处理。要想用,那就看原论文,自己写代码。

4.3.5 直方图映射
2009年,南理工的左超等人,在其论文中提出了一种改进型的直方图映射(modified histogram projection),该算法是在原始直方图均衡的基础上改进,不会放大噪声,类似普通的线性映射,与普通线性映射的区别是,该算法能够有效的越过(或者消除)“空缺灰度值”,在高动态的红外图像压缩中,能够得到一种类似“自适应的分段线性映射”的方法。对于灰度跨越过大的图像,效果很好。比如:一个人手上拿着一个很热的水杯。

结束语:
这一回用一首打油诗做个总结:
红外图像宽动态,
算法分为三大派。
基于映射第一类,
各路学者太有才。
全局局部都能搞,
是否线性无所谓。
噪声抑制很关键,
图像效果得改善。

时间有限,先写这么多。
下回聊重点聊:
“基于图像分层的宽动态图像增强算法”。

【红外DDE算法】聊聊红外图像增强算法的历史进程(第一回)的更多相关文章

  1. 【红外DDE算法】数字细节增强算法的缘由与效果(我对FLIR文档详解)

    [红外DDE算法]数字细节增强算法的缘由与效果(我对FLIR文档详解) 1. 为什么红外系统中图像大多是14bit(甚至更高)?一个红外系统的性能经常以其探测的范围来区别,以及其对最小等效温差指标.首 ...

  2. 分布式系统的Raft算法——在失联阶段这个老Leader的任何更新都不能算commit,都回滚,接受新的Leader的新的更新 意味着还是可能丢数据!!!

    过去, Paxos一直是分布式协议的标准,但是Paxos难于理解,更难以实现,Google的分布式锁系统Chubby作为Paxos实现曾经遭遇到很多坑. 来自Stanford的新的分布式协议研究称为R ...

  3. LeetCode初级算法--字符串02:字符串中的第一个唯一字符

    LeetCode初级算法--字符串02:字符串中的第一个唯一字符 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog. ...

  4. MicroPython TPYBoard v102 无线红外遥控舵机(基于红外解/编码模块)

    转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 红外解码/编码模块介绍 模块上搭载了红外接收头.红外 ...

  5. Self-organizing Maps及其改进算法Neural gas聚类在异常进程事件识别可行性初探

    catalogue . SOM简介 . SOM模型在应用中的设计细节 . SOM功能分析 . Self-Organizing Maps with TensorFlow . SOM在异常进程事件中自动分 ...

  6. 算法 -- 四种方法获取的最长“回文串”,并对时间复杂进行分析对比&PHP

    https://blog.csdn.net/hongyuancao/article/details/82962382 “回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就 ...

  7. 算法进阶面试题01——KMP算法详解、输出含两次原子串的最短串、判断T1是否包含T2子树、Manacher算法详解、使字符串成为最短回文串

    1.KMP算法详解与应用 子序列:可以连续可以不连续. 子数组/串:要连续 暴力方法:逐个位置比对. KMP:让前面的,指导后面. 概念建设: d的最长前缀与最长后缀的匹配长度为3.(前缀不能到最后一 ...

  8. 牛客寒假算法基础集训营4 I Applese 的回文串

    链接:https://ac.nowcoder.com/acm/contest/330/I来源:牛客网 自从 Applese 学会了字符串之后,精通各种字符串算法,比如……判断一个字符串是不是回文串. ...

  9. 【Azure Developer】完成算法第4版书中,第一节基础编码中的数组函数 histogrm()

    问题描述 算法 Algorithms (第四版)书中,第1章:基础编程模型第15题: 结果: 编写一个静态方法 histogram(), 接受一个整型数组a[] 和一个整数M为参数,并返回一个大小为M ...

随机推荐

  1. jQuery 工具类函数-URL操作函数

    调用名为$. param的工具函数,能使对象或数组按照key/value格式进行序列化编码,该编码后的值常用于向服务端发送URL请求,调用格式为: $. param (obj); 参数obj表示需要进 ...

  2. CF1208

    CF1208 打的话貌似能够涨分的样子? A 水题 B 枚举左端点,看看右端点的最近位置 开一个类似于桶的东西维护一下上一次出现位置 左端点左边就删掉,否则就要将上一次出现的位置删掉 时间复杂度\(O ...

  3. 【Linux】Mac好用虚拟机 Parallels Desktop、FinalShell-多终端连接工具(支持Windows,macOS,Linux)

    一.Mac好用虚拟机 Parallels Desktop 1.下载安装: 2.新建虚拟机: 3.配置管理: 二.FinalShell-多终端连接工具(支持Windows,macOS,Linux) 1. ...

  4. 读<大道至简>--软件工程实践者的思想有感

    初闻其名,<大道至简>,大多人都会觉得这是一本满腹人生哲理的书籍,作者洋洋洒洒的谈论大道理,其实不然,作者以古典文化为引,以作者的所思所想为线,启蒙了我作为一个软件工程初学者的实践思想. ...

  5. Mac Tab自动补全键

    最近入手一个Mac(Mac 2019版本),在使用终端时,发现不能使用Tab键自动补全代码,网络搜寻下,发现这里有个方法,记录下,免得自己忘记: 1 / 首先找到这个图标 2 / 输入命令 nano ...

  6. github 项目搜索技巧-让你更高效精准地搜索项目

    目录 github 搜索技巧 案例 普通搜 搭配技巧搜 限定词 查找某个用户或组织的项目 辅助限定词 还没搞懂的(关于 forks.mirror.issues) 排序(放的是官网的链接) 使用指南 练 ...

  7. C++引用计数设计与分析(解决垃圾回收问题)

    1.引言 上一篇博文讲到https://www.cnblogs.com/zhaoyixiang/p/12116203.html 我们了解到我们在浅拷贝时对带指针的对象进行拷贝会出现内存泄漏,那C++是 ...

  8. [梁山好汉说IT] 容器概念在北宋社会的应用

    [梁山好汉说IT] 容器概念在北宋社会的应用 0x00 摘要 如何对没有软件开发经验的人解释容器? 集装箱真的能够完美解释容器嘛? 除了集装箱还有其他常见实体能够解释容器嘛? 我找到了一个能够 和集装 ...

  9. Rust入坑指南:亡羊补牢

    如果你已经开始学习Rust,相信你已经体会过Rust编译器的强大.它可以帮助你避免程序中的大部分错误,但是编译器也不是万能的,如果程序写的不恰当,还是会发生错误,让程序崩溃.所以今天我们就来聊一聊Ru ...

  10. 006 管理Ceph的RBD块设备

    一, Ceph RBD的特性 支持完整和增量的快照 自动精简配置 写时复制克隆 动态调整大小 二.RBD基本应用 2.1 创建RBD池 [root@ceph2 ceph]# ceph osd pool ...