图像处理
- 1.空间域操作(Spatial domain operation)
- 1.1 点(Point operation)
- 1.2 邻域(Neighbourhood operation)
- 空间滤波(spatial filtering)
- 修复边界问题(fixing the border problem)
- 通过卷积进行空间滤波(Spatial filtering by convolution)
- 卷积特性:
- 滤波器
- 强度梯度向量(intensity gradient vector)
- 2.变换域操作(Transform domain operation)
1.空间域操作(Spatial domain operation)
1.1 点(Point operation)
操作单个像素(individual pixels)
该部分引用大佬: Computer Vision笔记01:图像处理
1.2 邻域(Neighbourhood operation)
操作多个像素(multiple pixels)
空间滤波(spatial filtering)
对像素组进行空间滤波(spatial filtering):使用输入图像中一个像素的小邻域(a small neighbourhood)内的灰度值,为输出图像中的该像素生成一个新的灰度值。
邻域通常是以(𝑥,𝑦)为中心的权重矩阵(weight matrix) 或方形子图像(rectangular subimage),成为过滤器(filter)或核(kernel)
通过卷积进行空间滤波
输入图像𝑓(𝑥,𝑦) ,输出图像ℎ(𝑥,𝑦)
o ( x , y ) = ∑ i = − n n ∑ j = − m m f ( x − i , y − j ) h ( i , j ) o(x, y)=\sum_{i=-n}^n \sum_{j=-m}^m f(x-i, y-j) h(i, j) o(x,y)=i=−n∑nj=−m∑mf(x−i,y−j)h(i,j)
为什么要反转核?
因为核函数就是卷积的脉冲响应
修复边界问题(fixing the border problem)
填充(Padding):将所有附加像素设置为一个常量(零)值
硬切换(hard transition)会产生边界伪影(border artifacts)(需要窗口化)
夹紧(Clamping):无限(indefinite)重复所有的边界像素值
更好的边界行为,但具有任意性(arbitrary)
包装(Wrapping):从对侧复制像素值
隐含(implicitly)使用傅里叶变换(Fourier transform)
镜像(Mirroring):
平滑(smooth)、对称(symmetric)、周期性(periodic)、无边界伪影(no boundary)
通过卷积进行空间滤波(Spatial filtering by convolution)
输入输出特性:卷积是一种线性的(linear),移位不变(shift-invariant)的操作
线性:
f 1 ( x , y ) ⇒ g 1 ( x , y ) f 2 ( x , y ) ⇒ g 2 ( x , y ) 则 a f 1 ( x , y ) + a f 2 ( x , y ) ⇒ a g 1 ( x , y ) + a g 2 ( x , y ) f_1\left( x,y \right) \Rightarrow g_1\left( x,y \right) \ f_2\left( x,y \right) \Rightarrow g_2\left( x,y \right) 则 af_1\left( x,y \right) +af_2\left( x,y \right) \Rightarrow ag_1\left( x,y \right) +ag_2\left( x,y \right) f1(x,y)⇒g1(x,y) f2(x,y)⇒g2(x,y)则af1(x,y)+af2(x,y)⇒ag1(x,y)+ag2(x,y)
移位不变:
f ( x , y ) ⇒ g ( x , y ) 则 f ( x − Δ x , y − Δ y ) ⇒ g ( x − Δ x , y − ζ y ) f\left( x,y \right) \Rightarrow g\left( x,y \right) \ 则f\left( x-\varDelta x,y-\varDelta y \right) \Rightarrow g\left( x-\varDelta x,y-\zeta y \right) f(x,y)⇒g(x,y) 则f(x−Δx,y−Δy)⇒g(x−Δx,y−ζy)
卷积特性:
交换性(Communitativity): f 1 ∗ f 2 = f 2 ∗ f 1 f_1 * f_2=f_2 * f_1 f1∗f2=f2∗f1
结合性(Associativity): f 1 ∗ ( f 2 ∗ f 3 ) = ( f 1 ∗ f 2 ) ∗ f 3 f_1 *\left(f_2 * f_3\right)=\left(f_1 * f_2\right) * f_3 f1∗(f2∗f3)=(f1∗f2)∗f3
分配律(Distributivity): f 1 ∗ ( f 2 + f 3 ) = f 1 ∗ f 2 + f 1 ∗ f 3 f_1 *\left(f_2+f_3\right)=f_1 * f_2+f_1 * f_3 f1∗(f2+f3)=f1∗f2+f1∗f3
乘法因子(Multiplicativity): a ⋅ ( f 1 ∗ f 2 ) = ( a ⋅ f 1 ) ∗ f 2 a\cdot \left( f_1\ast f_2 \right) =\left( a\cdot f_1 \right) \ast f_2 a⋅(f1∗f2)=(a⋅f1)∗f2
求导(Derivation): ( f 1 ∗ f 2 ) ′ = f 1 ′ ∗ f 2 = f 1 ∗ f 2 ′ \left( f_1\ast f_2 \right) '=f'_1\ast f_2=f_1\ast f'_2 (f1∗f2)′=f1′∗f2=f1∗f2′
定理(Theorem): f 1 ∗ f 2 ⟷ f 1 ^ ⋅ f 2 ^ f_1\ast f_2\longleftrightarrow \widehat{f_1}\cdot \widehat{f_2} f1∗f2⟷f1 ⋅f2
滤波器
最简单的平滑滤波(simplest smoothing filter)
计算邻域N中|N|个像素的平均像素值
g ( x , y ) = 1 ∣ N ∣ ∑ ∑ ( i , j ) ϵ N f ( x + i , y + j ) g\left( x,y \right) =\frac{1}{|N|}\sum{\sum{_{\left( i,j \right) \epsilon N}f\left( x+i,y+j \right)}} g(x,y)=∣N∣1∑∑(i,j)ϵNf(x+i,y+j)
- 常用于图像模糊(image blurring)和降噪(noise reduction)
- 减少由于图像采集干扰(disturbances in image acquisition)而引起的波动(fluctuation)
- 邻域平均也会模糊图像中的物体边缘(blur the object edges)
- 可以用加权平均(weighted averaging) 来赋予某些像素更多的重要性
也成为统一过滤器(uniform filter),因为它隐式(implicitly)的使用统一内核
高斯滤波(Gaussian filter)
最重要的基本图像滤波器之一
g σ ( x , y ) = 1 2 π σ 2 e − x 2 + y 2 2 σ 2 g_{\sigma}\left( x,y \right) =\frac{1}{2\pi \sigma ^2}e^{-\frac{x^2+y^2}{2\sigma ^2}} gσ(x,y)=2πσ21e−2σ2x2+y2
高斯滤波器具有许多优良特性
- 是唯一可分离(separable)且圆对称(circularly symmetric) 的滤波器
- 在空间和频域(spatial and frequency domain)具有最优联合定位(optimal joint localization)
- 高斯函数的傅里叶变换(Fourier transform) 也是高斯函数
- 任何低通滤波器的n倍卷积(n-fold convolution) 都会收敛(converges to)到高斯
- 它无线光滑(infinitely smooth) 所以可任意区分
- 它可自然扩展 σ \sigma σ,并支持一致的尺度空间理论 (consistent scale-space theory)
中值滤波(Median filter)
是一种基于排序和排名像素值的顺序统计滤波器,在邻域𝑁中计算包含𝑁个像素的中值,把数字图像或数字序列中某一点的值用该点的一个邻域中各点值的中值代替
- 消除了孤立的强度尖峰( isolated intensity spikes)(椒盐图像噪声)
- 邻域通常大小为 n×n像素,n=3,5,7……
- 消除面积小于 n 2 2 \frac{n^2}{2} 2n2的像素簇
- 不是卷积滤波,而是非线性滤波(nonlinear filter)
高斯VS中值
保留(retain)小物体,高斯滤波最佳
去除(remove)小物体,中值滤波最佳
非锐化掩蔽(unsharp masking)技术进行锐化
用原始图像减去高斯模糊后的图像。这相当于在原图中只保留了被高斯滤波去掉的部分——即高频细节(图像中的快速变化部分,比如边缘、纹理、细小的细节。这些区域通常对应图像中亮度变化剧烈的部分)
- 高斯滤波: 使用高斯滤波器对输入图像进行模糊处理,去除高频细节(例如边缘)。
- 高频细节提取: 通过将模糊后的图像从原始图像中减去,提取出高频细节(如边缘和突变区域)。
- 加权相加: 将提取出的高频细节乘以一个系数 𝑎,然后再加回到原始图像中,以增强边缘并锐化图像。
输出图像: 右侧的结果图像是原始图像的一个锐化版本猫毛更清晰
池化(Pooing)
将过滤(filtering)和下采样(downsampling)结合在一个操作中,有最大/最小/中值/平均池化,使图像更少并减少计算量,在深度卷积神经网络中很流行
导数滤波
- 空间导数对强度变化,如 (such as object edges)有响应
- 在数字图像中,他们使用有限差分(finite difference)来近似
- 有多种不同方式进行有限差分(take finite differences)
一阶导数:用前后相邻像素的差值表示变化
如:Prewitt and Sobel
二阶导数:可以用于检测图像中变化更快的区域
如:Laplacean过滤
高斯导数滤波(Gaussian derivative filters)
高斯导数滤波结合了高斯滤波(用于平滑)和导数滤波。它的基本思想是先用高斯滤波器对图像进行平滑处理,减少噪声影响,然后再计算导数。
Prewitt and Sobel算子
Prewitt算子 水平核,垂直核
Sobel算子
拉普拉斯过滤
近似二阶导数的和
强度梯度向量(intensity gradient vector)
梯度矢量(Gradient vector 2D)
指向强度增加最快的方向,与光线(isophote)正交(orthogonal)
梯度幅度(Gradient magnitude 2D)
表示梯度矢量的长度,与局部强度变化的大小(magnitude of the local intensity change)
梯度幅度的边缘检测
拉普拉斯的边缘检测
高斯一阶导数和二阶导数
傅里叶领域中的微分
微分抑制低频,但放大高频
拉普拉斯锐化
将拉普拉斯变换结果加回到原始图像中,通常会乘以一个增强因子(如负数的某个倍数),以强调边缘,此处k=-1