目录
1. 空间域图像增强的背景与目标
2. 空间域处理的数学描述
3. 灰度级变换
4. 幂律变换(Power-Law Transformation)
5、 分段线性变换
Case 1: 对比度拉伸
Case 2: 灰度切片
Case 3: 按位切片
6、对数变换(Logarithmic Transformation)
7、对比度拉伸(Contrast-Stretching Transformation)
8、直方图均衡
(1)直方图的定义
(2)直方图归一化
(3)直方图生成与显示
(4)直方图的对比分析
(5)代码示例
(6)直方图均衡化
i、目标:
ii、概率密度函数 (PDF) 和累计分布函数 (CDF)
iii、直方图均衡的变换函数
iv、离散版本的直方图均衡
9、直方图匹配
1. 原理概述
2. 直方图匹配的步骤
Step 1: 计算输入图像的累积分布函数 (CDF)
Step 2: 计算目标图像的累积分布函数 (CDF)
Step 3: 建立映射关系
Step 4: 应用映射
1. 空间域图像增强的背景与目标
- 图像增强的目标:通过处理图像使其对特定应用更适合。这里强调“特定应用”是问题导向的,因此增强方法没有统一的理论标准。
- 分类:
- 空间域方法:直接操作图像的像素。
- 频域方法:基于傅里叶变换的操作。
- 图像处理的评价:
- 对于视觉感知,评价取决于人类观察效果。
- 对于机器感知,如字符识别,评价通过任务完成度衡量。
2. 空间域处理的数学描述
- 数学表达式:
,其中
是一个操作符,可作用于像素的某个邻域。
- 邻域选择:通常使用方形或矩形邻域,因其易于实现。
- 最简单形式为强度变换,表示为
,即像素值的变换。
3. 灰度级变换
- 作用:调整图像像素值以实现增强效果。
- 示例中展示了不同的变换函数(例如S型和阶梯型),对应灰度范围从暗到亮的不同映射。
- 效果:调整对比度或强调特定灰度范围。
4. 幂律变换(Power-Law Transformation)
- 数学公式:
,通过调节
控制对比度。
- 典型应用:
- Gamma校正:用于显示器的线性响应矫正。
- 对比度增强:通过不同
值调整图像的细节和亮度。
- 下图展示了在医疗图像和航空图像中,通过不同的
值实现对比增强效果。
5、 分段线性变换
Case 1: 对比度拉伸
- 内容:图像的对比度拉伸通过增强低对比度区域来提高图像的视觉质量。
- 方法:
- 输入灰度值
与输出灰度值
之间建立分段线性关系。
- 拉伸低对比度部分(通过设定阈值
)。
- 示例:在原始低对比度图像上应用对比度拉伸,明显提高了对比度,增强了视觉效果。
- 输入灰度值
Case 2: 灰度切片
- 内容:通过灰度切片方法突出特定灰度范围的特性。
- 方法:
- 两种形式:将感兴趣的灰度范围值保留,其他灰度值置为常数;或保留所有灰度值,但突出特定范围。
- 应用:医学影像中,突出特定组织或结构。
Case 3: 按位切片
- 内容:按位切片以分离图像的不同比特平面。
- 方法:
- 图像由 8 个位平面组成,从最不重要位 (LSB) 到最重要位 (MSB)。
- 应用:观察 MSB 可以捕获主要图像结构,LSB 常用于存储隐藏数据(如水印)。
6、图像处理工具箱中的函数 imadjust
- 功能:
imadjust
是 MATLAB 的图像处理工具箱中用于调整图像强度值分布的函数。 - 语法:
g = imadjust(f, [low_in high_in], [low_out high_out], gamma)
- 参数解释:
low_in, high_in
:输入强度值的范围。low_out, high_out
:映射到的输出强度值范围。gamma
:控制曲线的非线性程度。
- 参数解释:
- 特点:
gamma < 1
:增强较暗区域的亮度。gamma > 1
:增强较亮区域的亮度。- 默认情况下,
gamma = 1
表示线性映射。
- 示例:
- 通过不同的参数组合调整乳腺图像对比度,以更清晰地观察病变区域。


图1左侧是从一个乳腺影像文件(Fig0303(a)(breast).tif
)读取的,使用 imshow(I)
显示该图像,显示的是原始未处理的乳腺 X 光片。
图1右侧使用 G = imadjust(I, [0 1], [1 0])
对原始图像进行处理,这种调整会产生一个负片效果,即原本亮的区域变暗,暗的区域变亮,显示负片的目的是强调图像中原本不明显的结构特征,方便分析。
图2左侧:对部分强度范围增强
- 使用
G = imadjust(I, [0.5 0.75], [0 1])
。 - 参数
[0.5 0.75]
选择了图像输入强度值的中间部分进行增强(从 0.5 到 0.75 的灰度范围)。 - 输出
[0 1]
将这些强度范围映射到全新的灰度范围,增强了这一范围的对比度。 - 结果是更强烈的对比,突出原图中特定强度范围的细节。
图2右侧:伽马变换增强
- 使用
G = imadjust(I, [], [], 2)
。 - 参数
[]
表示默认的输入强度范围[0 1]
和输出强度范围[0 1]
,2
是伽马值。 - 伽马值为 2 表示对暗部区域的灰度值进行放大(权重偏向暗部区域),使得暗部区域的细节更加清晰。
- 用于强调图像中的低灰度特征。
6、对数变换(Logarithmic Transformation)
- 目的:压缩动态范围。对数变换常用于处理动态范围较大的图像数据,例如傅里叶频谱图。
- 公式:
,其中
是常数。
- 用途:
- 压缩高动态范围数据,例如从
压缩到较小范围。
- 通过 MATLAB 中的命令实现,例如
g = im2uint8(mat2gray(log(1 + double(f))))
。
- 压缩高动态范围数据,例如从
- 例子:傅里叶频谱图
7、对比度拉伸(Contrast-Stretching Transformation)
- 公式:
,其中
为强度阈值,
控制函数的斜率。
- 作用:
- 将较低或较高的输入灰度值压缩到更窄的范围。
- 提高图像对比度,尤其适合灰度值分布范围有限的图像。
- MATLAB 实现:通过对应的公式,使用
double
数据类型进行计算。
8、直方图均衡
(1)直方图的定义
- 图像的直方图是强度值的分布统计,是增强、压缩、分割和描述等图像处理操作的基础。
,其中:
:第
个强度值;
:强度值为
的像素数量。
(2)直方图归一化
- 通过归一化直方图,可以将像素数量转化为概率分布:
这里
是总像素数。直方图归一化可以表示为灰度值强度的概率估计。
(3)直方图生成与显示
- 使用 MATLAB 函数
imhist
和bar
绘制直方图:imhist(f, b)
:计算直方图,是灰度级分箱的数量。
bar(horz, h1, width)
:绘制条形图,其中horz
为横轴刻度,h1
为直方图数据。
(4)直方图的对比分析
- 直方图可以帮助可视化图像的亮度分布。例如:
- 暗图像的直方图主要集中在灰度较低的部分;
- 亮图像的直方图主要集中在灰度较高的部分。
(5)代码示例
生成直方图:
f = imread('Fig3_8_a.tif');
h = imhist(f);
bar(h);
绘制条形直方图:
s = imread('Fig0303(a).tif');
h1 = imhist(s, 16);
horz = 1:16;
bar(horz, h1, 0.8);
(6)直方图均衡化
i、目标:
- 增强图像的对比度。
- 将图像的灰度分布调整为近似均匀分布。
ii、概率密度函数 (PDF) 和累计分布函数 (CDF)
-
PDF(概率密度函数):
- 图像中每个灰度级的出现概率。
- 定义为:
其中:
是灰度级,
是灰度级
的像素个数,
- N 是总像素数。
-
CDF(累计分布函数):
- 累计分布函数是 PDF 的积分,用来表示灰度值从最小到当前灰度值的累计概率:
或连续形式:
累计分布函数的值范围是 [0,1]。
- 累计分布函数是 PDF 的积分,用来表示灰度值从最小到当前灰度值的累计概率:
iii、直方图均衡的变换函数
直方图均衡的变换函数恰好就是累计分布函数:
变换函数被定义为原始灰度级概率密度函数的累积分布函数 :
其中 是积分的中间变量,代表从 0 到
的所有灰度级,
是变换后的灰度值,是近似均匀分布的。
本质:将原图像的灰度级 按上述累积分布函数映射为新的灰度级
。这个过程实现了原始灰度分布到均匀分布的调整,最终得到对比度均衡化的图像。
定性理解:原灰度值比较集中的区域,概率密度比较大,概率密度的累计函数增长比较快,从而使得较短的就灰度值区域转换为较长的新的灰度值区域,即让原灰度值集中的区域分散;而原灰度值比较分散的区域,概率密度比较小,概率密度的累计函数增长缓慢,使得较长的原灰度值区域被转换为角度的新灰度值区域,即让原灰度值分散的区域集中。
证明新的灰度值分布 s 服从均匀分布:
推导新的概率密度函数 ,
的定义为:
- 根据变换
的定义(
),求导得:
- 代入
的表达式:
- 结论: 经过变换后,新的灰度级概率密度函数
是均匀分布,满足直方图均衡化目标。
iv、离散版本的直方图均衡
-
在实际实现中,图像是离散的,其灰度级的概率密度可以表示为:
其中
是灰度级
的像素数量,
是图像总像素数。
-
累积分布函数的离散形式为:
这意味着每个像素的新的灰度级
由其对应的累积概率决定。
9、直方图匹配
直方图匹配(Histogram Matching 或 Histogram Specification)是一种图像处理技术,其目标是将输入图像的直方图调整为目标图像或目标直方图的分布。相比于直方图均衡化,直方图匹配允许更灵活地调整图像的灰度分布,以适应特定需求。
1. 原理概述
直方图匹配的核心是将输入图像 的灰度级分布调整为与目标图像
的灰度级分布相同。
- 输入图像直方图:
,表示输入图像中灰度级
的概率分布。
- 目标直方图:
,表示目标图像中灰度级
的概率分布。
通过设计一个映射函数 ,使得调整后的灰度分布
匹配目标直方图。
2. 直方图匹配的步骤
Step 1: 计算输入图像的累积分布函数 (CDF)
输入图像灰度级 的累积分布函数定义为:
或者在离散情况下:
其中:
是灰度级
的像素数量。
是图像总像素数。
是原始概率密度
到均匀分布的映射。
Step 2: 计算目标图像的累积分布函数 (CDF)
目标图像灰度级 的累积分布函数定义为:
或者在离散情况下:
其中:
是目标直方图中灰度级
的像素数量。
是目标图像的总像素数(或者是目标直方图的总和)。
是目标图像灰度值概率密度
到均匀分布的映射;
是均匀分布到目标图像灰度值概率密度
的映射。而这里的均匀分布如果采用映射
的输出,那么就实现了原图灰度值概率密度
到目标图概率密度
的转换。
Step 3: 建立映射关系
输入图像中每个灰度值 的对应映射
满足:
,这两个映射的结果都是均匀分布,所以相等。
通过求解 ,找到
到
的映射关系。
- 在离散情况下,通过最近邻法或插值找到
与
的对应关系:
Step 4: 应用映射
对输入图像的每个像素值 ,通过上述映射关系
替换其值,最终获得直方图匹配后的图像。