好吧。。。~~~先说直方图均衡化(Histogram Equalization),没想到这个东西,虽然经常用,但是,却搞了几个小时。。。。。。
优缺点,原理以及公式可以参考维基百科:
http://zh.wikipedia.org/wiki/%E7%9B%B4%E6%96%B9%E5%9B%BE%E5%9D%87%E8%A1%A1%E5%8C%96
使用条件很重要,还是抄过来吧:
“这种方法对于背景和前景都太亮或者太暗的图像非常有用”!:意思是,如果图像本身质量很好,可能就不适合用,设置产生负功!!
matlab中实现:
如果需要对RGB图像进行均衡化,可以分3通道进行。
结果如下:
好吧,看似很简单,是不?
应该是的~~~
那为什么我会搞了好几个小时。。。
因为我没想懂,第一个直方图怎么变到直方图的。。。?
然后相当于把均衡化实现了一遍。。。用小的数据测试,然后,还是没懂。。。
然后,突然懂了,因为均衡化相当于把原来的直方图拉宽了嘛~~~估计大家没看懂。。。
那为什么原来没值的地方都出现这么多呢?例如,0,原图就“没有”(很小罢了),现在却这么多?这个得从直方图均衡化的原理-变换公式说起:
原图中的灰度级0-20出现的频率都为0,即px(0)-px(20)都为0,根据公式,转换后的值都为0,所以,变换后的直方图0值的p'x(0)这么高。
希望对你有用~
不知说清了没。。。。
或者本来是懂的,被我说模糊了。。。抱歉
我会尽量提高我的表达能力
如果有什么问题,或者想讨论的,可以email:1241159842@qq.com