先介绍一下直方图最基础的知识吧。直方图的横轴从左到右表示亮度的越高,纵轴从下到上表示像素越多。亮度从0—255,0表示黑,255表示白。如果某个地方的峰越高,表示在这个亮度下的像素越多。
拿这个直方图来说,它的分布是非常均匀的,说明各个亮度区间的像素分布是很均匀的。
弄懂了上面这几句话,你对直方图就有了一个最基本的了解了,但实际上直方图的东西还有很多很多。
二、直方图的参数如何读 我问一个问题:两个直方图完全一样的图片,两幅图片的画面就一定是一样的吗? 答案当然是NO,因为直方图它记录的是像素的亮度信息,换言之,我们把上面所有的像素都不改变,只是改变它们的相对位置,直方图一点儿都不会改变,但画面内容可能就脱胎换骨了。 理解上面这一点很重要,对于我们理解直方图的本质有很大帮助。好吧,上面的都是一些人尽皆知的知识,下面的才是我要讲的,回到刚才这幅图。这幅图右边有色阶,数量,百分比这几个参数,它们的含义是什么呢? 大家打开直方图,把你的鼠标放在直方图的某个位置,就会出现这三个参数,它们分别代表: 色阶:指针所在地方的亮度,即从0-255的某个值。 数量:在这个亮度下的像素值,比如上面这幅图的意思就是在138这个色阶下,有1915个像素。 百分比:当前色阶在整个色阶中的位置。
好吧,上面这个还有进阶的知识。当你按住鼠标左键往右拉的时候,你会发现它们有变化。 色阶:你选取的色阶的范围,比如上面这个就是从115到216这个范围的色阶。 数量:在这个范围下的像素总数。 百分比:这里的百分比就不是位置的百分比了,而是你选取的范围的像素在整个像素中的百分比。 等等,有人会说,这个照片的像素总数才207284,怎么这个范围下的像素就有227728呢?这不是自相矛盾吗? 非常好的观察力,因为我是选的RGB通道,像素总数是要乘以三的,后面我会专门讲到各个通道的。 好吧,经过上面的学习,你又进一步了解了直方图了,但还不够,还有更复杂的。继续以这幅直方图为例,左边还有几个参数,平均值,标准偏差,中间值,像素。这几个参数的含义是什么呢? 平均值:平均值越高,照片整体就越偏亮,以128为中间值。 它的算法是:图像的亮度总值÷图像像素总数。 拿上面这幅图为例,它的平均值是117,离128很近是吧,所以曝光属于正常型的。 标准偏差:标准偏差是统计学名词。一种量度数据分布的分散程度之标准,用以衡量数据值偏离算术平均值的程度。标准偏差越小,这些值偏离平均值就越少,反之亦然。标准偏差的大小可通过标准偏差与平均值的倍率关系来衡量。 标准偏差公式:样本标准偏差S = Sqrt[(∑(xi-x拔)^2) /(N-1)],公式中∑代表总和,x拔代表所采用的样本x的均值,^2代表二次方,Sqrt代表平方根。 上面这些都不重要,了解就好,我们需要知道的是标准偏差与照片画面的关系。标准偏差越大,画面对比越明显,反之亦然。 中间值:将图像所有像素的亮度值通过从从小到大排列后,位置在最中间的数值。即将数据分成两部分,一部分大于该数值,一部分小于该数值。(如果有偶数个像素,就有两个位于中间的数,取前面的一个) 中间值的意义在于从另一个侧面来反映画面的整体亮度,是否是过曝或欠曝。它与平均值互补,不过没有平均值准确,具体缘由自己体会。 像素:这个不多讲了,大家都很熟悉的。 |