COMP9517 Week 1 Image Processing Basics
图像处理 & 图像分析 Image Processing & Image Analysis
图像处理遵循的是:Image in -> Image out
它的目标是消除失真,或者增强相关的信息。(suppress distortions & denhance relevant information)
图像分析遵循的是:Image in -> Features out
计算机视觉遵循的是:Image in -> Interpretation out
图像处理的形式 Types of Image Processing
两种图像处理的方式:
- 图像空间的空间域操作(Spatial Domain Operations in Image Space)
- 傅立叶空间的变换域操作(Transform Domain Operations in Fourier Space)【Week 2】
两种空间域操作方式:
- 点操作(单个像素的强度转换)
- 邻域操作(对像素组进行空间滤波)【Week 2】
空间域变换概述
空间域变换满足以下公式:
g(x,y)=T[f(x,y)]
- f(x,y):输入的图像
- g(x,y):输出的图像
- T[⋅]:在(x,y)上的操作符
在点操作中,操作符作用于单个的像素:
T:R→R g(x,y)=T[f(x,y)]
在邻域操作中,操作符作用于一组像素:
T:Rn→R g(x,y)=T[f(x,y),f(x+1,y),f(x−1,y),...]
基本点操作 Bcasic Point Operations
对比度拉伸 Contrast Stretching
对比度拉伸用于生成对比度更高的图像。它通常的工作原理是:
- 将输入图像中低于L的像素的值设置为最小值(黑色)
- 将输入图像中高于H的像素的值设置为最大值(白色)
- 将输入图像中介于L与H之间的像素的值线性缩放到输出图像的最小值(黑色)和最大值(白色)之间
强度阈值 Intensity Thresholding
- 是对比度拉伸的极限情况
- 生成灰度图像的二值图像
- 将低于阈值的值在输出中设为黑色
- 将等于或高于阈值的值在输出中设为白色
- 仅当对象和背景的强度差异很大时才有用
- 结果很大程度取决于阈值水平(用户设置的参数)
强度阈值的自动计算
大津法(Otsu's Method)
- 通过穷举法搜索最小类内方差的阈值(Exhaustively searches for the threshold minimising the intra-class variance)
σW2=p0σ02+p1σ12
- 等价最大类间方差(Equivalent to maximising the inter-class variance)【计算速度更快】
σB2=p0p1(μ0−μ1)2
- p0:是低于阈值的像素比例(class 0)
- p1:是等于或高于阈值的像素比例(class 1)
- μ0:是class 0的像素平均强度
- μ1:是class 1的像素平均强度
- σ02:是class 0的强度方差
- σ12:是class 1的强度方差
- p0+p1=1
- σ02+σ12=σ2
IsoData法 IsoData Method
- 选择一个人一的初始阈值 t
- 根据阈值计算出两种class像素的均值 μ0 和 μ1
- 将阈值更新为两组均值的中点:t=(μ0+μ1)/2
- 如果步骤3中,t 的值发生了改变,则返回步骤2继续
当收敛时,阈值位于两个类别均值的中点。最终使阈值位于两类像素强度均值的中点,从而实现最佳的图像二值化分割。
多阈值分割 Multilevel thresholding
与单阈值时相同,只不过分配的颜色多了几个区间。
强度反转 Intensity inversion
在强度反转操作中,图像的每个像素的强度值都被反转。例如,输入强度值为0(黑色)的像素在输出图像中变为1(白色),而输入强度值为1(白色)的像素在输出图像中变为0(黑色)。中间值的强度也相应地反转。
对数变换的定义:
s=c⋅log(1+r)
其中,r 是输入强度,s 是输出强度, c 是常数。
- 用于将输入的低灰度值的窄范围映射到输出值的较宽范围,反之亦然
- 压缩具有大像素值变化范围的图像的动态范围(如傅里叶频谱,将在后面讨论)
图表展示了输入灰度级 r 和输出灰度级 s 之间的关系曲线。曲线说明了不同变换(如对数、负变换、幂变换等)对输入输出灰度级的影响。
幂变换的定义:
s=c⋅rγ
其中,c 和 γ 都是常数。
- 类似于(逆)对数变换
- 通过改变 γ 表示一系列变换
- 许多设备按幂律响应
- 幂变换的示例:伽玛校正
- 对于通用对比度调整非常有用
分段线性变换 Piecewise Linear Transforamtion
- 补充其他变换方法
- 使得变换设计更加精细化
- 可以具有非常复杂的形状
- 需要更多的用户输入
灰度切片 Gray-Level Slicing
用于突出显示特定范围的灰度级。两种不同的切片方法:
- 对感兴趣范围内的所有灰度级赋予高值,对所有其他灰度级赋予低值(生成二值图像)(Transform 1)
- 在保持背景和图像其他灰度级不变的情况下,使特定范围的灰度级变亮(Transform 2)
位平面切片 Bit-Plane Slicing
- 突出显示特定位对整个图像的贡献
- 每个像素有n位的图像有n个位平面
- 可以用于图像压缩
像素直方图 Histogram of Pixel Values
定义
对于每一个可能的灰度级值,计算具有该值的像素数量,并将像素数量作为灰度级的函数绘制出来。
基于直方图的阈值处理 Histogram Based Thresholding
我们可以使用三角形法(Triangle Method)计算阈值。
- 找到直方图的峰值点 rp,hp 和最高的灰度级点 rm,hm
- 从峰值点到最高灰度级点构造一条直线 l(r)
- 找到使得 ∣∣l(r)−h(r)∣∣ 距离最大的灰度级 r
以下是Otsu's Method, IsoData Method, Triangle Method的对比:
直方图处理 Histogram Processing
直方图均衡化(Histogram equalization):
直方图规定(Histogram specification)或称直方图匹配(Histogram matching):
- 使图像具有指定的强度分布,该分布由直方图的形状决定
直方图均衡化 Histogram Equalization
增强直方图最大值附近的强度值的对比度,并降低直方图最小值附近的对比度。
以下是直方图均衡化的数学模型:
- 设 r∈[0,L−1] 表示像素值(强度,灰度级),其中 r=0表示黑色,r=L−1表示白色。
- 考虑变换 s=T(r),其中 0≤r≤L−1,满足以下条件:
- T(r) 是单值,且在 0≤r≤L−1 范围内单调递增,这保证了逆变换 T−1(s) 的存在。
- 对于 r∈[0,L−1],有 T(r)∈[0,L−1],这保证了输入和输出的范围相同。
直方图均衡化的数学方法
以下是连续与离散情况下,直方图均衡化的数学方法:
直方图均衡化斜率约束 Constrained histogram equalization
- 完全直方图均衡化(Full histogram equalization):T(r) 的斜率没有约束,灰度值的变换函数是自由变化的。
- 约束直方图均衡化(Constrained histogram equalization):T(r) 的斜率是受约束的,变换函数的变化受到了限制,避免了极端的对比度变化。
完全直方图均衡化虽然可以显著增强对比度,但有时会导致图像过度增强,细节丢失。而约束直方图均衡化则通过限制变换函数的斜率,避免了过度增强,保留了更多的图像细节,使得处理后的图像更加自然。
直方图匹配 Histogram Matching
直方图均衡化的目的是增强图像对比度,使灰度级均匀分布。而直方图匹配(或称直方图规定)则是将一幅图像的灰度分布调整为目标分布,使其符合特定的灰度分布要求。简单来说,直方图匹配是为了让输入图像的灰度分布变成和目标图像的灰度分布相似。
具体步骤如下:
- 直方图均衡化:首先,将输入图像的灰度分布转换为均匀分布。通过累积分布函数 T(r) 实现这一点。
- 逆变换到目标分布:然后,使用目标分布的逆累积分布函数 G−1(s) 将均匀分布转换为目标分布。
直方图分配的数学方法
以下是连续与离散情况下,直方图分配的数学方法:
直方图分配例子 Histogram Matching Example
在这个实例中,直方图匹配对每个颜色通道(R、G、B)分别进行处理,使输入图像的直方图尽可能匹配目标图像的直方图。通过这种方法,输入图像的颜色分布被调整为类似于目标图像的颜色分布,从而使输出图像在视觉效果上更接近目标图像。
算数和逻辑运算
算术和逻辑运算是在两个图像之间基于像素逐个进行的。
可以使用的有:+,-,*,/,AND,OR,XOR,...
加法和减法 addition and subtraction
左侧的两个图像(Input 1 和 Input 2)展示了不同时间点拍摄的同一场景。输入图像 1 中没有人,而输入图像 2 中有人经过。
输出图像中显示了两幅图像的差异,结果中可以明显看到人的轮廓。
逻辑与和逻辑或 AND and OR
Input表示输入图像,Mask表示需要显示的图像(白色代表显示,黑色代表不显示)。将它们逻辑与后,即可得到想要显示的部分的图像。
均值降噪 Averaging to Reduce Noise
假设:
-
真实的无噪声的图像是:g(x,y)
-
实际能观测到的图像是:fi(x,y)=g(x,y)+ni(x,y)
对于每一个 i=1,...N,ni 是零均值,独立同分布(independent and identically distributed)的噪声图像。
那么,我们将能够得到:
E[fi(x,y)]=g(x,y)VAR[fi(x,y)]=VAR[ni(x,y)=σ2(x,y)]
通过求平均值,我么能够得到:
以下是不同参数下的降噪示例:
考试例题 Example Exam Question
Which one of the following statements about intensity transformations is incorrect?
A. Contrast stretching linearly maps intensities between two values to the full output range.
B. Log transformation maps a narrow range of high intensities to a wider range of output values.
C. Power transformation can map intensities similar to log and inverse log transformations.
D. Piecewise linear transformations can achieve contrast stretching and intensity slicing.
答案是B。对数变换是将低强度值的窄范围映射到输出值的较宽范围内的。
在对数变换中,通常将低强度值的窄范围映射到较宽的输出值范围,从而增强图像中暗部区域的细节。相反,高强度值在对数变换中通常不会有显著的变化,因为对数变换对高值的拉伸效果较弱。