2、直方图基础:灰度直方图的概念、直方图的性质、如何读取直方图信息。

好,咱们进入第二章。直方图这东西,说白了就是图像的“体检报告”。

我刚入行那会儿,觉得直方图就是个花架子,调色全凭感觉。后来被一个老前辈点醒,他说:“你不看直方图,就像医生不看化验单,全靠猜。” 从那以后,我养成了一个习惯:拿到一张图,先看直方图,再看画面本身。这个顺序,帮我省了太多时间。

2.1 灰度直方图的概念

什么是灰度直方图?

很简单。一张灰度图,每个像素都有一个亮度值,范围通常是0到255。0是纯黑,255是纯白。直方图就是统计一下:这张图里,亮度为0的像素有多少个?亮度为1的有多少个?……一直到亮度为255的有多少个?

把这些统计结果画成柱状图,横轴是亮度值(0到255),纵轴是像素数量。这就是灰度直方图。

核心定义:灰度直方图是图像中像素灰度级分布的函数,描述了图像中每种灰度级出现的频率。

举个例子,一张纯黑的图,所有像素都是0,直方图就只在0的位置有一根冲天柱,其他地方全是平的。一张纯白的图,就只在255的位置有一根柱子。一张曝光正常的风景照,直方图通常像一个中间高、两边低的山丘。

2.2 直方图的性质

直方图有几个很重要的性质,我挑三个最常用的讲讲。

性质一:位置缺失性

直方图只告诉你“有多少个像素是这个亮度”,但它不告诉你“这些像素在图像的哪个位置”。

举个例子,一张左边全黑、右边全白的图,和一张上半部分全黑、下半部分全白的图,它们的直方图是一模一样的。都是0的位置有一半像素,255的位置有一半像素。

为什么会这样?因为直方图丢弃了空间位置信息。它只关心“量”,不关心“在哪”。

我在项目中遇到过这种情况:用直方图匹配算法做色调统一,结果两张图直方图一模一样,但画面内容完全不同。嗯,这就是位置缺失性在作怪。所以,直方图是全局信息,不能完全代表画面内容。

性质二:可叠加性

如果你把一张图切成上下两半,分别计算直方图,然后把这两个直方图对应位置的数值相加,得到的结果就是整张图的直方图。

这个性质很实用。比如你想分析一张图的暗部细节,可以单独提取暗部区域的直方图,和整体直方图对比,看看暗部细节是否丰富。

性质三:与图像的一一对应关系(不成立)

这个性质其实是性质一的推论。不同的图像可以有完全相同的直方图。所以,直方图和图像之间不是一一对应的关系。

你想想看,如果两张图直方图一样,它们看起来可能完全不一样。这就是为什么我们不能只靠直方图来还原图像。

2.3 如何读取直方图信息

读直方图,其实就是在读图像的“明暗分布”。我一般会看三个维度:范围、峰值、形状

看范围:曝光是否正常

直方图的横轴范围是0到255。如果直方图的左右两端都有大量像素堆积,说明图像存在“过曝”或“欠曝”。

  • 左边撞墙(0附近有高峰): 图像有大量纯黑区域,细节丢失。这叫“欠曝”或“暗部溢出”。
  • 右边撞墙(255附近有高峰): 图像有大量纯白区域,细节丢失。这叫“过曝”或“亮部溢出”。
  • 中间饱满,两边不撞墙: 曝光比较理想,细节丰富。

注意: 并不是所有图像都要避免撞墙。比如一张夜景图,暗部撞墙是正常的。一张雪景图,亮部撞墙也是正常的。关键看画面内容是否合理。

看峰值:对比度是否合适

直方图的峰值分布,反映了图像的对比度。

  • 峰值集中在中间窄区域: 图像对比度低,看起来灰蒙蒙的,像蒙了一层雾。
  • 峰值分布在整个横轴,且比较均匀: 图像对比度高,层次感强。
  • 峰值集中在两端,中间很少: 图像对比度过高,可能丢失中间调细节。

我个人习惯,拿到一张灰蒙蒙的图,第一件事就是看直方图。如果峰值都挤在中间,我就知道该做对比度拉伸了。

看形状:细节是否丰富

直方图的形状,能反映图像的细节丰富程度。

  • 平滑、连续的山丘状: 细节丰富,过渡自然。
  • 锯齿状、有断崖: 可能经过了过度处理,或者图像本身质量不高。
  • 出现多个明显的峰: 图像可能包含多个亮度层次分明的区域,比如逆光人像(背景亮、人脸暗)。

我曾经处理过一张老照片,直方图全是锯齿,一看就是被反复压缩保存过。这种图想恢复细节,难度很大。

2.4 直方图的核心逻辑

下面这张图,是我自己总结的直方图知识体系。你看一眼,就能把刚才讲的内容串起来。

灰度直方图 概念:亮度统计分布 性质:位置缺失、可叠加 读取方法:范围、峰值、形状 横轴:亮度0-255 纵轴:像素数量 不同图像可相同 可分区叠加 范围:曝光判断 峰值:对比度 形状:细节丰富度 核心:直方图是全局亮度统计,不包含位置信息

2.5 实战:读一张图的直方图

假设你拿到一张图,直方图长这样:

  • 左边0-50区域有一个很高的峰
  • 右边200-255区域有一个中等高度的峰
  • 中间50-200区域几乎没什么像素

你能读出什么信息?

第一,这张图暗部很多,而且暗部细节可能丢失(因为左边峰很高且靠近0)。第二,亮部也有一定数量,但不如暗部多。第三,中间调很少,说明这张图对比度很高,可能是一张逆光照片或者夜景灯光图。

我遇到这种情况,会先判断:暗部撞墙是不是合理的?如果是夜景,那没问题。如果是白天风景,那就要考虑提亮暗部了。

小技巧: 在Photoshop或Lightroom里,按住Alt键拖动“黑色”滑块,可以实时看到哪些区域在撞墙(变成纯黑)。按住Alt键拖动“白色”滑块,可以看到哪些区域在过曝(变成纯白)。这个技巧我用了十年,非常实用。

好了,直方图的基础就这些。记住三个关键词:范围看曝光、峰值看对比度、形状看细节。下次拿到一张图,别急着调色,先看一眼直方图。你会发现,很多问题一眼就能看出来。


专注资料整理