1.灰度拉伸
有两种
线性拉伸:将灰度范围线性扩展
非线性拉伸:将感兴趣的灰度范围线性扩展,相对抑制不感兴趣的灰度区域
1.1 效果
线性点运算作用:
- 当图象成像时曝光不足或过度,
- 成像设备的非线性
- 图像记录设备动态范围太窄等原因,都会产生对比度不足的弊病,使图像中的细节分辨不清。这时可通过点运算将灰度范围线性扩展.
1.2 原理
1.2.1 线性拉伸
即进行线性点运算,输出灰度级与输入灰度级呈线性关系的点运算:
- 其中,
代表的是二维图像上的灰度值 代表的是拉伸后二维图像上的灰度值 是线性方程的系数 是线性方程的截距
很自然需要分情况讨论,
- 当
时,输出图像的暗区域将变亮,亮区域将变暗,反色效果 - 注意如果
,反色后还是有压缩对比度效果 - 从直方图角度看,直方图的柱子在x轴下方了
- 注意如果
当
时,输出图像的对比度减小,压缩对比度 - 适用于原图灰度的动态范围太大的情况
- 从直方图角度看,直方图的柱子群分布范围变窄了,但是直方图的形状压缩了
当
时,图像整体增亮 当
时,图像整体变暗 - 使所有像素的灰度值上移或下移
- 其效果是使整个图像更暗或更亮
- 从直方图角度看,就是整个柱子群向255平移或者向0平移,分布范围不变
- 当
时,输出图像的对比度拉伸,拉伸对比度 - 可使图像动态范围增大,图像对比度扩展。
- 从而使图像变得清晰以及图像上的特征变得明显
- 从直方图角度看,就是整个柱子群柱子群分布范围变宽了,直方图的形状被拉伸了
直方图角度理解拉伸和压缩:
可以看到形状还是那个形状
1.2.2 分段线性拉伸
突出感兴趣的目标或灰度区间,相对抑制那些不感兴趣的灰度区间
MATLAB中的imadjust
将灰度图像 I
中的灰度值映射到新值中。
默认情况下,imadjust
对所有像素值中最低的
1%
和最高的 1%
进行抑制处理;将介于最低的
1%
和最高的 1%
之间的像素值进行拉伸。这意味着函数会忽略最极端的像素值,从而防止它们对整体图像的视觉效果产生不良影响。
1.3 代码
1 | img = imread("rice.png"); |
2.直方图修正
分类
- 直方图均衡化
- 直方图规定化
2.1 直方图
2.1.1 直方图定义
直方图(Histogram):
反映一幅图像灰度级与出现这种灰度的概率之间关系的图形(某灰度级的像素个数)
- 横坐标是灰度级
- 纵坐标是该灰度级出现的频度
- 直方图是图像最基本的统计特征
2.1.2 直方图性质
- 不同图像可能具有同样的直方图,图像与直方图之间是多对一的映射关系
- 可叠加性,若将图像分区,则每个区都可分别作直方图,而原图像的总直方图为各区直方图之和
- 直方图是总体灰度的概念:
- 总体偏暗的图像:
- 总体偏亮的图像:
- 总体对比度偏低的图像:
- 总体对比度较高的图像:
总结:
2.2 直方图均衡化
2.2.1 目的
将原图像的直方图变换为均匀分布的形式,这样就增加了像素灰度值的范围,从而达到增强图像整体对比度的效果
2.2.2 算法流程
- 统计灰度级
的频数 - 计算灰度级
的概率
- 其中
为灰度级 的频数, 为所有像素点的数量, 为归一化的输入图像灰度级(如 )
- 计算累计分布概率
- 取整扩展
- 其中
是灰度值总数(灰度范围0-7,则 )
- 建立映射
2.2.3 讨论
灰度拉伸 VS. 直方图均衡化
pout
tire
直方图均衡化通过重新映射图像的灰度值,以使图像中的灰度级在整个动态范围内得到充分利用;这与的灰度映射不同,直方图均衡化是非线性运算,灰度运算是线性运算(或分段线性运算)。
可以观察到图像“pout.tif”原始图像的直方图中大部分像素集中在较窄的灰度级区间75-100,其余基本没有分布,导致图像整体偏灰(灰度级75-100在黑白中间嘛),图像不够清晰。进行直方图均衡化后灰度级近似均匀地分布在0-255上,对比度得到了提升,小孩子的人脸变得更加清晰,而且也可以看到背景的栅栏。但是,与灰度映射不同,直方图均衡化后的pout(人)脸部的一部分和外套都泛白,不自然,出现过饱和情况。
图像“tire.tif”的像素主要在集中在少数几个灰度级0-50,导致图像对比度较低,细节不明显经过直方图均衡化后像素较为平均地分布在256个灰度级中,对比度得到了显著提高,特别是轮胎的一些纹理变得非常清晰,以至于许多先前隐藏的特征暴露出来,尤其是轮胎上的碎屑颗粒(或者纹路?),而且轮胎的中心泛白,也是过饱和了。灰度调节在图像“tire.tif”上没有效果,因为imadjust默认仅对所有像素值中最低的 1% 和最高的 1% 进行线性运算处理,但原图的所有像素值已经在0-255均有分布,故几乎没有影响。
直方图均衡化和灰度调节都是让有效利用整个灰度范围,使得图像的动态范围更广,从而增强了图像的视觉效果。但是从直方图上看直方图均衡化后的灰度分布近似均匀分布,而灰度调节的灰度分布仅仅是 "拉伸" 了原分布(当然极端灰度级是抑制/压缩的)。