这篇仅当作随手小记,可能不对,请各位及时指正。
在学习图像处理的基本知识的时候,我们常常能听到诸如由于对数本身上凸的性质,它可以把低灰度(较暗)部分的亮度提高。
由对数函数的性质,确实能将暗部提高,亮部压缩。但是凡事都有限度的。诸如一个前100行为0.0001,102行为0.00000000001,102到200行为0.0002,300到400行为10等,也即是HDR图像的标配,此时常规的对数变换还是无法得到良好的对比度的,原因在于log(1+0.00005)=4.999e-5,而log(20+1)=3.0445,如此两者对比度差距仍是10^6,无法合理显示的,此时需要以下操作
log(1+I*10^6)
也即在对数变换时对数据乘以较大的数,起初我还想着是利用了对数曲线拉伸暗部的性质,结果并不是,真正的原因我认为反而是利用了对数函数对亮部的压缩!
一个数值算例: log(1+5e-5*10^6)=3.9318,而此时log(1+20*10^6)=16.8112,此时两者的对比度已经被拉近到4倍了,对比之前的十万量级,明显已经到了可以被8位显示器显示的位置,这也是我理解的为什么对图像乘以一定数值可以得到明确的对比度,当然,变亮也是不可避免地,不过HDR嘛,一般都暗不是,稍微亮一点也挺好~~~
版权声明:本文为qq_38385468原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。