点.直方图处理一般不涉及什么复杂算法,而且最大的特点是针对图像中每个像素处理而求取整体上的某种效果,或者需要对直方图作新映射。本文总结一下最近实现了的几种基本操作。——ZwqXin.com
本文来源于 ZwqXin (http://www.zwqxin.cn/), 转载请注明
原文地址:http://www.zwqxin.cn/archives/image-processing/image-process-point-histogram.html
原始图像和直方图:
1. 黑白二值化
见[基于亮度的图像二值化处理] 一文。图像需先转化为灰度图(亮度图),可调节参数是阈值位置,一般是中间值:127或128
2.反相
比较简单,就是对灰度为X的像素,取结果为255-X就是了。图像可以转化为灰度图,或者单纯对彩色图每通道进行。
3.灰度切割
也比较简单,不过就是指定图片内某一灰度值范围[A,B]内的像素“可见”而已。图像转化为灰度图后,接收A,B两个参数,并适当处理该范围外的像素怎么显示——取决于应用,常见全黑,全白,或者低灰度部分黑化高灰度部分白化。
4.灰度拉伸(对比度拉伸)
对256个灰度级建立映射,常用线性变换(包括photoshop),看图就能明白是怎么回事了。
(原图转为灰度图后,对应的映射图)
(中部斜率k>1,对应的映射图)
(中部斜率k<1,对应的映射图)
同样给予一个灰度值范围[A,B],另加一个中部斜率k。假设具有中间灰度(127或128)的像素保持恒定,那么:
对于中间部分(具有[A,B]灰度的像素):斜率k小于1则整体变暗,大于1则整体变亮;
对于高灰度部分和低灰度部分:由A,B和k决定,在所有像素映射灰度[0,255]下,若k小于1,则高、低部分斜率大于1,映射灰度扩大;若k大于1则反之,出现“暗部越暗,亮部越亮”。
总体而言,对比度拉伸就是为了增强对比效应,突出图像中前背景之视差。
5.直方图均衡
我们希望一张图的像素应该尽量分布于各灰度间,也就是图像拥有一个均衡的直方图(直方图,横坐标为灰度,纵坐标为该灰度在图片中的相对数量)。但是很多图片的像素灰度集中于某一个局部,譬如集中于低灰度级处或高灰度级处,造成图片过暗或过亮。这时候重新分配一下灰度,把那些堆挤在一起的灰度线扩散到整个灰度范围。从某一意义来说,这也是增强图像对比度的一种方法。
算法稍微涉及概率统计的知识,我也很难说弄明白,但实现的时候按照算法陈述,注意映射对应关系就好。(这就叫囫囵吞枣喇)
6.伽玛变换
典型的点变换,变换公式result = c(input + Б)^γ , 其中γ (gamma)是核心,它取大于1的数时能实现图像整体亮度(灰度)提升,而且原来越亮的部分会提升得更多。
7.对数变换
也是典型得点变换,result = c*log(input + 1),其实就是整体亮度降低,原来越暗部分降低得越多。基本上就是伽玛变换的对立面。
ETC呃~~再次泛泛而谈~~~~
本文来源于 ZwqXin (http://www.zwqxin.cn/), 转载请注明
原文地址:http://www.zwqxin.cn/archives/image-processing/image-process-point-histogram.html