转自:https://www.cnblogs.com/cjhd/p/7530440.html
Tone Mapping(色调映射) 认识
- 目录
- 【背景 - 高动态图像】
- 【起源】
- 【定义】
- 【举个例子】
- 【研究分类】
- 详细
1. 【背景 - 高动态图像】
图像的动态范围: 图像的 Max(亮度值) / Min(亮度值)
高动态图像 : 动态范围大的图像
高动态 VS 普通 : 高动态图像(位数 > 8位) 普通灰度图像(位数 = 8位 一般情况) 显示器的灰度Only 8位
怎么办 -处理 : 将高动态图像的颜色 -> 变换 才能显示出来;
另外高动态图像的灰度值分布的很不均匀,只有少数的像素点较亮,所以如果直接对图像进行线性的归一化(把灰度最大值映射为255,最小值映射为0)再显示,则图像会一片黑(参考左下图)。色调映射(tone mapping)就是为了解决这个问题而生。
--- 延伸:自然图像亮度特点。 亮度单位是坎德拉/平方米(cd/m2), 自然界中的亮度从星光(10^-2 cd/m2数量级),到日光(10^4 cd/m2数量级),动态范围为10^6,非常大。
2. 【起源】
eg1 : 在18世纪时,画家在作画的时候面临着这样一个问题:自然界中光线亮度的范围非常大,而颜料颜色的范围却非常有限。
因此,找出一套行之有效的颜色转换方法,用范围有限的颜料,画出颜色范围很宽的自然光,变得尤为重要。现如今,这种颜色的转换的方法,就成为色调映射。
eg2 : 在摄影学中,底片的对比度往往很低,直接冲洗的话,很难表现图片中的细节。
所以也需要对底片进行处理(Dodging and Burning),这也引入了色调映射的一类方法,详细内容会在后面叙述。
eg3 : 在20世纪70年代,电子相机的出现,人们开始使用模拟电路,来处理图像。
之后随着数字相机的出现与发展,发展出了现在的各种色调映射(Tone mapping)算法
3. 【定义】
色调映射算法 : 指对图像颜色进行映射变换的算法。
目的, 调整图像的灰度,使得处理后的图像人眼看起来更加舒适,能更好的表达原图里的信息与特征。
理解 : 通常被理解为将颜色值从高动态范围(HDR)映射到低动态范围(LDR) 的过程。
在Unity(虚拟现实引擎软件)中,这意味着对于大多数平台上任意16 位的浮点型颜色值将被映射为 [0,1] 范围内的传统8位颜色值。
4. 【举个例子】
Gamma校正
5. 【研究分类】
色调映射研究方法大致分为两类 : 全局 / 局部
1> 全局算法
特点 :
1. 任意相同颜色的像素点,在映射后,还是相同的颜色;
2.全局算法一般较简单,速度快;
3.全局算法的性能一般劣于局部方法;
存在算法 : 直方图均衡化、Gamma、对数校正、直方图规定化、分段灰度变换
2>局部算法
特点 :
1.映射前颜色相同的像素点,映射后颜色可能不同
2.局部算法一般较全局方法更复杂,速度相对较慢;
3.局部算法的性能一般优于全局方法;
4.会出现光晕等现象
存在算法 : 分块中值直方图等
特别感谢新浪博客作者 陈法圣 资料链接: http://blog.sina.com.cn/s/blog_6a5781350102w707.html
相关公式参考链接 :http://www.cnblogs.com/bigbigtree/p/3458797.html
相关优秀算法示例 :https://wenku.baidu.com/view/d5996bb8be23482fb5da4c26.html
以上内容只是简单搭起框架 , 日后在做项目或研究过程中会持续更新。。。