本文是关于本人研究生期间数字图像处理课程的学习笔记,仅仅是为了方便自己整理和记忆知识点,不能保证所提到知识点全部正确,并且文章结构可能会比较零碎和杂乱,尽量在一段时间后定期整理笔记。
第二章:基础
灰度值 [0,255] ,0 表示黑色,255 表示白色。
课程内容主要包括:图像增强/去噪/复原/压缩/融合/识别/修补等内容。
图像 $I=f(x,y)=i(x,y)\cdot r(x,y)$,其中 $i(x,y)$ 是入射分量,取决于照射源;$r(x,y)$ 是反射分量,取决于被照物体。$0<i(x,y)<\infty$,$0<r(x,y)<1$。
分辨率 DPI:单位长度上采样的像素数
CMY 彩色空间:三基色(青色、洋红色、黄色)相减模型
HSI 彩色空间:色调、饱和度、强度
图像的存储方式可以按像素存储(它的三种颜色的值),或按颜色存储(先存储所有像素的红色值,再存黄色,再存蓝色)
BMP 图像是无损压缩的位图
TIFF 是比较经典的图像格式,功能强
DICOM 是医学图像,拓展名为 DCM
相邻像素: (1) 4邻域$N_4(P)$:上下左右四个相邻像素; (2) 8邻域 $N_8(P)$:上下左右、左上、左下、右上、右下8个相邻像素; (3) D 邻域 $N_D(P)$:左上、左下、右上、右下4个相邻像素。
像素的邻接(连通)性:像素是否相邻并且相似
(1) 4 邻接:q 在 p 的 4 邻域内,并且两个像素相似
(2) 8 邻接:q 在 p 的 8 邻域内,并且两个像素相似
(3) M 邻接(混合邻接):具有相似值的两个像素 q 和 p 满足 【q 在 $N_4(p)$ 内)】 或 【q 在 $N_D(p)$ 内 并且 $N_4(p)\cap N_4(q)$ 中像素值不相似】,则 p 和 q 是 M 邻接的。即:当像素间同时存在4邻接和8邻接时,优先采用4邻接,屏蔽和一个像素同时存在4邻接的两个像素之间的8邻接。
通路:从坐标为 (x,y) 的点 p 到坐标为 (s,t) 的点 q 的路径
两个像素 p(x,y) 和 q(s,t) 间的距离:
- $D_4$ 距离(城市距离):D(p,q)=|x-s|+|y-t|
- $D_8$ 距离(棋盘距离):D(p,q)=max(|x-s|,|y-t|)
第三章:图像增强
图像增强就是人为地突出图像中的部分细节,而压制另一部分信号。
空域增强:对图像像素处理 $g(x,y)=T[f(x,y)]$ ,其中 T 是某种操作
频域增强:修改图像的傅里叶变换
图像的点运算
(1) 反转:$s=(L-1)-r$,[0 , L-1] 是图像的灰度级,r 是点的像素值
(2) 对数变换:$s=c\cdot \log(1+r),r\geq 0$,c为常数
(3) 幂次变换:$s=c\cdot r^{\gamma}$ ,c 和 $\gamma$ 是两个正的常数。当 $\gamma>1$ 时提高灰度级,使图像变亮,反之变暗。
(4) 对比度扩展:增强图像各部分的反差,突出感兴趣的区间,抑制不感兴趣的区间。
(5) 灰度变换:从原图的像素灰度范围 [a,b] 线性映射到结果图像的像素灰度范围 [c,d]。此外也可以对低于最低值和超过最高值的部分进行另外的线性变换(分段线性变换)。
灰度变换可分为全域线性变换和分段线性变换。全域线性变换:如果是原图大部分像素值范围为 [c,d] ,还可以把低于最低值 c 和超过最高值 d 的部分经变换后设为 c 和 d。分段线性变换又包括:削波(从原像素范围[a,b]转换为[0,255],把低于最小值和超过最大值的地方分别设为0和255)、阈值化(高于某个值为255,反之为0)
(6) 灰度级切片:将关心的像素值范围设为较高值,而其他设为较低值。或者关心范围设为较高值,其他保持不变。
图像的代数运算
(1) 加法:$g(x,y)=\alpha f(x,y)+\beta h(x,y),\alpha+\beta=1$ ,可以实现去噪、叠加(相加取平均去噪声)
(2) 减法:显示两幅图片的差异,可以提取运动中的物体,去除背景
(3) 乘法:对应点相乘(用二值模板做,提取感兴趣的区域)
(4) 除法:一副图像取反后与另一幅图像相乘
(5) 非:$g(x,y)=255-f(x,y)$,每种颜色取其补色
(6) 与:取相交的子图(用模板提取感兴趣的子图像)
(7) 或:合并图像(用模板提取感兴趣的子图像)
(8) 异或:获得相交子图
直方图:表达图像灰度级分布情况
直方图均衡化:因为图片的灰度大多分布在较窄的区间,从而导致图像细节不清晰,直方图均衡化可使图像的灰度分布均匀,增大反差,使细节清晰,其步骤如下:
- 统计灰度值得直方图: $P_r(r_k)=n_k/N$,$r_k$ 是第 k 个灰度级,$n_k$ 是该灰度在图像的数量。这一步是求所有灰度级在图像中所占的比例;
- 累计分布变换:$S_t=T(r_k)=\sum_{j=0}^kP_r(r_j)=\sum_{j=0}^k\frac{n_j}{n}$,求得灰度级的累计分布概率;
- 变换后的灰度级:$S(k)=int[(\max(r_k)-\min(r_k))\cdot S_k+0.5]$,$max(r_k)$ 表示灰度级的最大值,如果有 0~7 共 8 级灰度,则该值为 7。S(3)=2 表示原来为 3 的灰度级经变换后变为了为 2 的灰度级。
其基本思想是合并灰度级使概率大体一致,但是灰度级的数量可能会减少。
空间滤波器:包括平滑空间滤波器和锐化空间滤波器。
平滑滤波器:可对图像进行模糊处理、降噪
平滑滤波器分类:
(1) 线性滤波器(平均滤波器):邻域内像素值去平均,可以去除高斯噪声
(2) 统计排序滤波器:有中值/最大/最小滤波器几种
对点、线、尖顶等细节较多的图像不适合用中值滤波器,中值滤波器在去噪的同时可保存细节,去除脉冲(椒盐)噪声。这种噪声的特点是高灰度级和低灰度级的噪声多。
最大值滤波器可去除暗点,最小值滤波器可去除亮点。
均值与积分相似,可产生钝化的效果;微分可产生锐化的效果。
锐化滤波器:突出细节、边缘提取,图像上的边缘反应为相邻像素的跃变
一阶微分边缘检测:若边缘梯度超过阈值,则改边缘就被设定为当前边缘。
梯度法(水平或垂直梯度):$\nabla g(x,y)=|G_x|+|G_y|$,$G_x,G_y$ 分别为水平和垂直梯度。
$$
\begin{bmatrix} & & \ & -1&1\ & 1& \end{bmatrix}
$$
新像素值=abs(中-右) + abs(中-下)
Roberts 算法(交叉差分):
$$
\begin{bmatrix} & & \ & -1&-1\ & 1&1 \end{bmatrix}
$$
新像素值=abs(右下-中) + abs(右-下)
Sobel 算法:检测到的边缘较其他更加平滑光洁,取水平差分和垂直差分中的较大者 或 取两种差分之和
$$
\begin{bmatrix} -1& &1 \ -2& &2\ -1& &1 \end{bmatrix}
$$
新像素值=abs((右上-左上) + 2*(右-左) + (右下-左上))
或
$$
\begin{bmatrix} -1& -2& -1\ & &\ 1& 2&1 \end{bmatrix}
$$
差分模板的权值系数为 0
prewitt 算子:对噪声敏感
$$
\begin{bmatrix} -1& &1 \ -1& &1\ -1& &1 \end{bmatrix}
$$
新像素值=(右上+右+右下) - (左上+左+左下)
或
$$
\begin{bmatrix} -1& -1& -1\ & &\ 1& 1&1 \end{bmatrix}
$$
一阶微分边缘检测会突出小缺陷,去除慢变化的背景
二阶微分边缘检测——拉普拉斯算子,可增强图像突变处的对比度
二元图像函数 $f(x,y)$ 的拉普拉斯变换:
$$
\nabla^2f=\frac{\partial^2 f}{\partial x^2}+\frac{\partial^2 f}{\partial y^2}
$$
离散形式:
x 方向:
$$
\frac{\partial^2 f}{\partial x^2}=f(x+1,y)+f(x-1,y)-2f(x,y)
$$
y 方向:
$$
\frac{\partial^2 f}{\partial y^2}=f(x,y+1)+f(x,y-1)-2f(x,y)
$$
故二维拉普拉斯数字实现由以上两个分量相加:
$$
\nabla^2f=[f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)]-4f(x,y)
$$
$$
\begin{bmatrix} 0& 1& 0\ 1& -4&1\ 0& 1&0 \end{bmatrix}
$$
或
$$
\begin{bmatrix} 1& 1& 1\ 1& -8&1\ 1& 1&1 \end{bmatrix}
$$
又或者以上两个矩阵的值都取其相反数。
$$
\begin{equation}
g(x,y)=\left{
\begin{aligned}
f(x,y)-\nabla^2f(x,y)\
f(x,y)+\nabla^2f(x,y)\
\end{aligned}
\right.
\end{equation}
$$
拉氏变换具有各向同性(旋转不变性),是一个线性操作
拉氏素描算子:因结果中负值会丢失,可以增加偏移量 254,超出 255 时截断为 255
先拉氏得掩模后与原图相加,可写为一步:
$$
g(x,y)=5f(x,y)-[f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)]
$$
反锐化掩蔽和高频提升滤波处理:
反锐化掩蔽:将图像模糊形式从原图中去除 $f(x,y)-\bar{f}(x,y)$,其中 $\bar{f}(x,y)$ 为模糊图
反锐化掩蔽的基本算法如下:
$g(x,y)=f(x,y)+k[f(x,y)-\bar{f}(x,y)]$,$\bar{f}(x,y)$ 可以用局部平均法求得,如
$$
\frac{1}{9}\begin{bmatrix} 1 & 1 &1 \ 1 & 1&1\ 1 & 1&1 \end{bmatrix}
$$
反锐化掩蔽的一个特例是拉氏算子增强。反锐化掩蔽的普遍形式被称为高频提升滤波,定义如下:
$$
f_{hb}(x,y)=Af(x,y)-\bar f(x,y)
$$
第四章:频率域滤波
频率域图像增强是对经过傅里叶变换后的频谱图操作,空间域是对像素操作
傅里叶变换:非周期函数可以用正弦/余弦乘以加权函数的积分来表示
傅里叶反变换:函数特征可通过反变换来重建,而不丢失任何信息
在频率域做图像增强的原因有:1. 一些在空间域难以表述的增强问题,在频率域变得很普通。2. 滤波在频率域更为直观。
模板=滤波器
滤波在频域上更简单
一维傅里叶正变换:$F(u)=\int_{-\infty}^{+\infty}f(x)e^{-j2\pi ux}dx$,其中 x 是空间变量,u 是频域变量,j 是复数的虚部,f(x) 是实变量 x 的连续函数,F(u) 是频率函数(有实部和虚部)。空间域用小写,频率域用大写。
傅里叶反变换:$f(x)=\int_{-\infty}^{+\infty}F(u)e^{j2\pi ux}du$
离散形式:
$$
F(u)=\frac{1}{M}\sum_{x=0}^{M-1}f(x)e^{-j2\pi ux/M}
$$
$$
f(x)=\sum_{u=0}^{M-1}F(u)e^{j2\pi ux/M}
$$
实函数的傅里叶变换通常是复数,即 $F(u)=R(u)+jI(u)$,其极坐标表示为:$F(u)=|F(u)|e^{-j\phi(u)}$
二维正 FT:$F(u,v)=\int_{-\infty}^{+\infty}\int_{-\infty}^{+\infty}f(x,y)e^{-j2\pi (ux+vy)}dxdy$
二维反 FT:$f(x,y)=\int_{-\infty}^{+\infty}\int_{-\infty}^{+\infty}F(u,v)e^{j2\pi (ux+vy)}dudv$
其中 f(x,y) 是连续图像函数
离散形式:
$$
F(u,v)=\frac{1}{MN}\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)e^{-j2\pi(ux/M+vy/N)}
$$
$$
f(x,y)=\sum_{u=0}^{M-1}\sum_{v=0}^{N-1}F(u,v)e^{j2\pi(ux/M+vy/N)}
$$
一般 F(u,v) 是复函数,即 $F(u,v)=R(u,v)+jI(u,v)=|F(u,v)|e^{j\phi(u,v)}$
在 FT 前常用 $(-1)^{x+y}$ 乘以输入图像(原点中心化) $\mathfrak{F}\lfloor f(x,y)(-1)^{x+y}\rfloor=F(u-M/2,v-N/2)$
空域下原点对应频域坐标下 (M/2,N/2)
$F(0,0)=\frac{1}{MN}\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)$ 是 f(x,y) 的平均值,若 f(x,y) 为实函数,则其 FT 是对称的
FT 的 9 条性质
(1) 平移性 :
$$
f(x-x_0,y-y_0)=F(u,v)e^{-j2\pi(ux_0/M+vy_0/N)}
$$
$$
f(x,y)e^{j2\pi(u_0x/M+v_0y/N)}=F(u-u_0,v-v_0)
$$
(2) 分配性(加法分配,无乘法分配性)
$$
\mathfrak{F}[f_1(x,y)+f_2(x,y)]=\mathfrak{F}[f_1(x,y)]+\mathfrak{F}[f_2(x,y)]
$$
(3) 尺度(比例)变换性(缩放)
$$
af(x,y)=aF(u,v)
$$
$$
f(ax,by)=\frac{1}{ab}F(u/a,v/b)
$$
(4) 旋转性:原图旋转多少度,幅度频谱图也旋转多少度
(5) 周期性和对称性
周期性:
$$
F(u,v)=F(u+M,v)=F(u,v+N)=F(u+M,v+N)
$$
反变换也具有周期性
共轭对称性:
$$
F(u,v)=F^*(-u,-v)
$$
频谱对称性:
$$
|F(u,v)|=|F(-u,-v)|
$$
(6) 平均值
(7) 可分性:可先进行水平方向的变换再进行垂直方向的变换
(8) 卷积(*是卷积 $\cdot$ 是乘积,$f^* ()$比例变换)
在空域做卷积就相当于在频域做乘积,在空域做乘积就相当于在频域做卷积。
(9) 相关性
频率三大性质:1. 变换最慢的频率成分(原点)对应平均灰度级 2. 低频对应图像慢变化分量 3. 较高频对应变化较快的灰度级
频域图像增强
频域中低频对应着原图中慢变化分量,高频对应着变化较快的分量。
包括:平滑的频域滤波器、频域锐化滤波器和同态滤波器
频率域滤波步骤:
(1) 用 $(-1)^{x+y}$ 乘以输入图像来进行中心变换
(2) 计算图像的 DFT(离散傅里叶变换),即 F(u,v)
(3) 用滤波器函数 H(u,v) 乘以 F(u,v):$G(u,v)=H(u,v)F(u,v)$
(4) 计算 G(u,v) 的反 DFT,$f(x,y)=\mathfrak{F}^{-1}[G(u,v)]$
(5) 用 $(-1)^{x+y}$ 乘以滤波后图像的实部
陷波滤波器: 在点 (M/2,N/2) 处滤波器值为0,反之为1。可以让图像的平均值为0。
平滑的频域滤波器:
灰度图中边缘和尖锐变化主要处于 FT 的高频部分,平滑可以通过衰减指定图像 FT 中高频成分的范围来实现。主要分为:理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器。
理想低通滤波器(ILPF) 模糊振铃(水波样)
$$
\begin{equation}
H(u,v)=\left{
\begin{aligned}
1;D(u,v)&\leq D_0 \
0;D(u,v)&>D_0 \\end{aligned}
\right.
\end{equation}
$$
$D_0$ 为截至频率,D(u,v) 为 (u,v) 到频率矩形原点的距离。$$
D(u,v)=\sqrt{(u-M/2)^2+(v-N/2)^2}
$$
$D_0$ 半径内的频率分量会无损通过,其他分量被滤除。
巴特沃斯低通滤波器(BLPF)
n 阶巴特沃斯低通滤波器的传递函数为:
$$
H(u,v)=\frac{1}{1+[D(u,v)/D_0]^{2n}}
$$
一阶巴特沃斯滤波器没有振铃,阶数越高振铃越明显高斯低通滤波器(GLPF)
$$
H(u,v)=e^{-D^2(u,v)/2\sigma^2}
$$
令 $\sigma=D_0$。
平滑后的图像无振铃现象,比 BLPF 处理后的图像更模糊一点。
频域锐化滤波器
高频滤波器是使高频分量顺利通过,低频分量收到削弱。频率内常用高通滤波器有:理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器。
理想高通滤波器(IHPF)
$$
\begin{equation}
H(u,v)=\left{
\begin{aligned}
0;D(u,v)&\leq D_0 \
1;D(u,v)&>D_0 \\end{aligned}
\right.
\end{equation}
$$n 阶巴特沃斯低通滤波器的传递函数为:
$$
H(u,v)=\frac{1}{1+[D_0/D(u,v)]^{2n}}
$$高斯高通滤波器(GHPF)
$$
H(u,v)=1-e^{-D^2(u,v)/2D_0^2}
$$
频率域的拉普拉斯算子
$$
\mathfrak{F}[\frac{d^nf(x)}{dx^n}]=(2\pi ju)^nF(u)
$$
$$
\mathfrak{F}[\frac{d^2f(x,y)}{dx^2}+\frac{d^2f(x,y)}{dy^2}]=(2\pi ju)^2F(u,v)+(2\pi jv)^2F(u,v)
$$
$$
=-4\pi^2(u^2+v^2)F(u,v)
$$
频域的拉普拉斯算子可以由以下滤波器实现:
$$
H(u,v)=-4\pi^2(u^2+v^2)
$$
滤波器中心化:
$$
H(u,v)=-4\pi^2\lfloor(u-M/2)^2+(v-N/2)^2 \rfloor
$$
原始图像减去拉普拉斯算子部分,形成增强图像:
$$
g(x,y)=f(x,y)-\nabla^2f(x,y)
$$
可用单个滤波器完成该操作:
$$
g(x,y)=\mathfrak{F}^-{\lfloor1-4\pi^2(u-M/2)^2-4\pi^2(v-N/2)^2 \rfloor F(u,v)}
$$
反锐化模板:从一副图像减去其自身模糊图像而生成的锐化图像,可表示为:$f_{hp}(x,y)=f(x,y)-f_{lp}(x,y)$
高频提升滤波:$f_{hb}(x,y)=Af(x,y)-f_{lp}(x,y)=(A-1)f(x,y)+f(x,y)-f_{lp}(x,y)$$=(A-1)f(x,y)+f_{hp}(x,y)$
对应的,在频率域,反锐化模板为:$H_{hp}(u,v)=1-H_{lp}(u,v)$,高频提升滤波器为:$H_{hb}(u,v)=(A-1)+H_{hp}(u,v)$
高频增强滤波:在高通滤波器函数前乘以一个常数,再增加一个偏移量以使零频率不被滤掉。$H_{hfe}(u,v)=a+bH_{hp}(u,v)$
同态滤波器:
照射反射模型:$f(x,y)=i(x,y)\cdot r(x,y)$,因 FT 不满足乘法分配率,所以在频域不可将其分开。可以取对数:
$$
\mathfrak{F}{z(x,y)}=\mathfrak{F}{\ln f(x,y)}=\mathfrak{F}{\ln i(x,y)}+\mathfrak{F}{\ln r(x,y)}
$$
其中 $z(x,y)=\ln f(x,y)$,也可写为:$Z(u,v)=F_i(u,v)+F_r(u,v)$
用滤波函数 H(u,v) 处理 Z(u,v):
$$
S(u,v)=H(u,v)Z(u,v)=H(u,v)F_i(u,v)+H(u,v)F_r(u,v)
$$
经过傅里叶反变换后得到空域中处理过的图像:
$$
s(x,y)=\mathfrak{F}^{-1}{S(u,v)}
$$
取指数:
$$
g(x,y)=e^{s(x,y)}
$$
同态滤波器的处理过程就是:1.取对数 2. DFT 3. 滤波 4. $(DFT)^{-1}$ 5.取 exp
同态滤波器分别作用于照射分量和反射分量,照射分量变化缓慢,反射分量在边缘处变化剧烈。图像对数的傅里叶变换后的低频部分对应照射分量,高频成分对应反射分量。同态滤波器可减弱低通分量,增强高通分量。
同态滤波器函数(不要求会):
$$
H(u,v)=(\gamma_H-\gamma_L)[1-e^{-c(D^2(u,v)/D_0^2)}]+\gamma_L
$$
$$
\gamma_L<1\quad且\quad\gamma_H>1
$$
c 是用来控制滤波器函数斜面的常数
第五章:图像复原
图像退化/复原过程模型:f(x,y) -> 退化 -> 噪声 -> 复原滤波 -> f’(x,y)
$$
G(x,y)=H(x,y)F(x,y)+N(x,y)
$$
$$
g(x,y)=h(x,y)*f(x,y)+n(x,y)
$$
先退化(滤波)再加噪声,其中 * 是指卷积。
噪声主要有:高斯噪声、瑞利噪声、伽马噪声、指数分布噪声、均匀分布噪声和脉冲噪声(椒盐噪声)等。
如果图像仅受噪声影响,无退化等,则前面的式子就变成了:
$$
G(x,y)=F(x,y)+N(x,y)
$$
$$
g(x,y)=f(x,y)+n(x,y)
$$
噪声存在下的空间滤波复原
1. 均值滤波器
(1) 算术均值滤波器:计算 $m\times n$ 代谢奥邻域内的像素均值
(2) 几何均值滤波器:邻域内像素点相乘开 mn 次方
(3) 谐波均值滤波器 :对盐噪声效果好,对胡椒噪声效果不好
(4) 逆谐波均值滤波器:泛化能力强
2. 顺序统计滤波器
(1) 中值滤波器
(2) 最大/小值滤波器
(3) 中点滤波器:最大值和最小值之间的中点
(4) 修正后的阿尔法均值滤波器:去掉邻域内最高灰度值的 d/2 和最低灰度值的 d/2,计算剩余像素的平均值
3. 自适应滤波器
基于均值和方差等统计特性,均值是区域中灰度平均值的度量,方差是区域中平均对比度的度量。
消除周期性噪声的滤波器
1. 带阻滤波器
2. 带通滤波器
3. 陷波滤波器
4. 最佳陷波滤波器
估计退化函数
几何变换
映射和插值
第九章:数学形态学原理
膨胀、腐蚀、开运算、闭运算、击中与否
边缘提取、区域填充、连接部分提取、凸壳算法、细化、粗化、
第十章:图像分割
可以分为基于边缘检测的方法和基于区域生成的方法。前者主要有基于边缘检测的图像分割和基于阈值选取的图像分割,后者主要有区域生长、分裂-合并的分割方法。
间断检测
点的检测、线的检测、边的检测(梯度算子、sobel算子、拉普拉斯算子等),这些检测模板系数和为0,并且在感兴趣的方向系数大。
边缘连接
局部处理法(梯度和方向角)和霍夫变换
阈值分割法
全局的、局部的、自适应的(取决于空间坐标x,y,将原图划分为小的子图,对子图分别进行不同的阈值处理)
最佳全局和自适应阈值(计算)
基于区域的分割
区域增长、区域分割-合并、分水岭算法
第十一章:图像的表示与描述
表示方法
1. 链码
链码、归一化链码、差分链码(首差)、归一化的差分链码
2. 多边形近似
点合成法、边分裂法
3. 外形特征
质心角函数
4. 边界分段
5. 区域骨架
边界描述子
1. 简单描述子
边界周长、边界最大轴(边界直径)、边界最小轴、边界离心率、基本矩形
2. 形状数
归一化的差分链码
傅里叶描述子
- 本文作者: 俎志昂
- 本文链接: zuzhiang.cn/2019/09/24/DIP/
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!