数字图像处理
课程概述
参考教材
- 数字图像处理(冈萨雷斯)
考核
-
三个作业(15+15+10=40%)
-
期末考试(60%)
课程主页:http://lamda.nju.edu.cn/chenyuhui/dip19/dip19.html
CH1 数字图像处理概述
采样:用有限的样本数目去近似无限的现实物理信号;或简而言之,有限近似无限
量化:用离散计算机表示去近似连续的现实物理信号;或简而言之,离散近似连续
把物理世界表示到计算机中来是数字图像获取的关键
有大量细节的图像,需要的量化级数较少
**最佳量化:**使量化误差最小的量化方法, 使用公式推导
CH2 空间域图像处理
图像内插
-
最近邻内插法
-
双线性内插法
-
用4个最近邻去估计给定位置的灰度
-
$v(x,y) = ax + by + cxy + d$
-
求解由4个等式组成的方程组
-
-
双三次内插法
-
用16个最近邻去估计给定位置的灰度
-
$v(x,y) = \sum_{i=0}^3 \sum_{j=0}^3 a_{ij}x^i y^j$
-
求解由16个等式组成的方程组
-
像素间的基本关系
-
相邻像素
-
4邻域:上下左右, $N_4(p) = {(x-1,y), (x+1,y), (x,y-1), (x, y+1)}$
-
4对角邻域, $N_D(p) = {(x-1,y-1), (x-1,y+1), (x+1, y-1), (x+1,y+1)}$
-
8邻域: $N_D(p) + N_4(p)$
-
-
邻接性、连通性、区域和边界
-
邻接性
-
4邻接: 如果$q$ 在$N_4(p)$ 集合中,且$q$ 的灰度与$p$ 的灰度都在集合$V$中,则$q$ 和$p$ 是4邻接的
-
8邻接:如果$q$ 在$N_D(p)$ 集合中,且$q$ 的灰度与$p$ 的灰度都在集合$V$中,则$q$ 和$p$ 是8邻接的
-
$m$邻接(混合邻接):$q$ 的灰度与$p$的灰度都在集合$V$中, 且 ( $q$在$N_4(p)$中,或者 $q$在$N_D(p)$中,且$N_4(p) \wedge N_4(q)$的灰度都不在集合$V$中),则$q$和$p$是$m$邻接的
-
-
连通性
- 从$(x,y)$ 到 $(s,t)$ 的路称为通路, 如果$(x,y)=(s,t)$,则此通路称为闭合通路
-
连通集
-
对于$S$中任何像素$p$, $S$中连通到该像素的像素集叫做$S$的连通分量
-
如果$S$仅有一个连通分量,则集合$S$叫做连通集
-
-
区域
-
令$R$是图像中的像素子集。如果$R$ 是连通集,则称$R$为一个区域
-
如果两个区域的联合形成一个连通集,那它们是邻接区域。
-
假设图像包括$K$个不连接的区域,即$R_1,…,R_k$,且不接触边界。
-
$K$个区域的并集$R_u$, 称为前景
-
它们的补集$(R_u)^c$,称为背景
-
-
-
边界
-
一个区域$R$的边界(也称为边缘或轮廓线)是区域中像素的集合
-
这些点与$R$补集中的点邻近
-
这些点至少有一个背景邻点
-
-
用8联通来定义
-
边界:一个有限区域的边界(通常)形成一 条闭合通路,是个“整体”概念
-
边缘:具有某些导数值(超过预先设定的阈 值)的像素形成,是个“局部”概念;
-
边界只考察其邻点是否属于集合V,属于二 值判断。边缘考察灰度级的差别,粒度更细 。边缘可能不闭合。
-
什么时候边缘=边界?二值图像
-
-
-
距离度量
-
满足以下条件:
-
$D(p,q) \ge 0$, 且$D[p,q] =0 \Leftrightarrow p=q $
-
$D(p,q) = D(q,p)$
-
$D(p,z) \leq D(p,q) + D(q,z)$
-
-
常用距离
-
欧氏距离
-
$D_4$ 距离(曼哈顿距离)
-
$D_8$ 距离(棋盘距离):$D_8(p,q) = \max(|x-s|, |y-t|) $
-
-
背景知识
图像增强是领域特殊的。
两大类方法:
-
空间域方法:图像平面本身,对图像的像素直接处理。
- 直观、离散。
-
变换域方法:空间域 $\rightarrow$ 变换域 $\rightarrow$ 处理 $\rightarrow$ 空间域
- 频域(傅里叶变换), 连续。
空间域方法是直接对像素操作的过程
$g(x,y)= T(f(x,y))$, $T$ 为操作算子,定义在$(x,y)$ 的邻域。
边界怎么办? 忽略外部、填充
两种类型
-
空间滤波
- 空间滤波器:邻域、预定义的操作
-
灰度变换
-
邻域大小为1的空间滤波
-
灰度变换函数: $s= T(r)$
-
函数可以存储在1维数组中,通过查表实现 映射
-
基本灰度变换
三类基本函数:线性函数、对数函数、幂律函数
值越低,颜色越深
图像反转
$S = L - 1-r, L= 2^b$
增强嵌入在暗区域中的白色或灰色细节
对数变换
$s = c \log (1+r)$
-
为什么$1+r$, 因为 $(0,0)$
-
低灰度值拉伸
-
高灰度值压缩
幂律变换
$s = c r^{\gamma}$
-
低灰度值拉伸 难道不是看$\gamma$ 大于1还是小于1吗?
-
高灰度值压缩
-
可以调整$\gamma$
-
伽马变换
-
$\gamma$ 越小,对比度越低,细节越多
分段线性函数
可以只拉伸某些灰度级上的对比度
-
对比拉伸变换
- 单调递增
-
线性函数
- $r_1 = s_1, r_2 = s_2$
-
阈值处理函数
- $r_1 = r_2,s_1 =0, s_2 = L-1$
-
灰度级分层
- 突出特定灰度范围的亮度
-
比特平面分层
- 突出特定比特的作用
- 8比特图像可认为由8个1比特平面组成
- 高阶比特平面包含视觉上重要的数据
- 低阶比特平面贡献了更精细的灰度细节
- 突出特定比特的作用
灰度直方图
-
图像中每种灰度级的像素个数
-
灰度直方图的横坐标是灰度级,纵坐标表示该灰度级出现的频率。
阈值面积函数A(D)
-
连续图像中具有灰度级$\ge D$ 的轮廓线所 包围的面积
-
$A(D) = \int_D^{\infty} H(p) dp $
概率密度函数(PDF)
-
归一化到单位面积的直方图
-
$PDF = P(D) = \frac{1}{A_0} H(D)$
累积分布函数(CDF)
- 归一化后灰度级$\le D$的轮廓线所包围的面积
定义
-
严格定义: $H(D) = - \frac{d}{dD}A(D)$
-
数字图像时,简化为$H(D) = A(D) - A(D+1)$
应用
-
图像快速检测
- 可以利用灰度直方图来判断一幅图像是否合理的利用了全部被允许的灰度级范围,从而及早发现数字化中出现的问题
-
分割前景背景
- 以直方图两峰之间的谷地T为阈值来确 定边界,可把图像分为前景背景两部分
-
面积计算
直方图处理
-
直方图均衡化
-
直方图匹配
-
局部直方图均衡化
-
直方图统计量用于局部图像增强
直方图均衡化
直方图呈均匀分布时,对比度会有明显增强。通过灰度变换函数,将原图像直方图的分布均衡化,这一过程称为直方图均衡化。
-
输入图像灰度值概率密度$p_r(r)$
-
变换函数$s= T(r)$
-
输出图像灰度值概率密度$p_s(s)$
$p_s(s) = p_r(r) |\frac{dr}{ds}| = p_r(r) |(\frac{ds}{dr})^{-1}| = p_r(T^{-1}(s))\frac{1}{T'(T^{-1}(s))}$
变换函数
-
连续:
- $s = T(r) = (L-1)\int_0^r p_r(w) dw$
-
离散:
-
$p_r(r_k) = \frac{n_k}{MN}$ , $k=0,1,2,…,L-1$
-
$s_k = T(r_k) = (L-1) \sum_{j=0}^k p_r(r_j)$
-
直方图匹配(规定化)
-
均匀直方图的基本增强有时并不是最终目标。 我们通常希望可以处理后的图像具有某种指定 的直方图形状。
-
这种用于产生处理后有特殊直方图的图像的方法,叫做直方图匹配或直方图规定化处理。
-
输出直方图分布不要求均匀,要求为某个特定分布
核心思想:以平衡化直方图图像为桥梁
先把A转化成均衡化图像B, 再把B转化成图像C。
局部直方图处理
-
中小区域的细节容易被忽略
-
如果不希望对整体图像增强,只希望对局部进行增强怎么办?
-
以图像中每个像素的邻域中灰度分布 为基础设计变换函数
步骤:
-
定义一个领域,并不断平移中心位置
-
在每一个位置,计算该邻域中点的直方图
- 许多元素为0
-
利用直方图均衡化或直方图匹配得到变换函数
-
将变换函数作用到邻域中心像素
-
-
移动重复上述过程
在图像增强中使用直方图统计
灰度平均值: $m = \sum_{i=0}^{L-1} r_i p(r_i)$
n阶距: $\mu_n(r) = \sum_{i=0}^{L-1} (r_i -m)^np(r_i)$
采样均值: $m = \frac{1}{MN} \sum_{x=0}^{M-1} \sum_{y=0}^{N-1}f(x,y)$
采样方差: $\sigma^2 = \frac{1}{MN} \sum_{x=0}^{M-1} \sum_{y=0}^{N-1}[f(x,y)- m]^2$
-
均值和方差常用于局部增强
-
局部均值和局部方差
-
$m_{S_{xy}} = \sum_{i=0}^{L-1} r_i p_{S_{xy}}(r_i)$
-
$\sigma^2_{S_{xy}} = \sum_{i=0}^{L-1} (r_i - m_{S_{xy}})^2p_{S_{xy}}(r_i)$
-
$S_{xy}$ 表示像素$(x,y)$的近邻集合
-
许多灰度值频率为0
-
空间滤波
-
空间滤波基础
-
空间滤波机理
-
空间相关与卷积
-
-
平滑空间滤波器
-
平滑线性滤波器
-
统计排序滤波器
-
-
锐化空间滤波器
-
拉普拉斯算子
-
梯度
-
-
混合空间增强法
空间滤波机理
-
空间滤波器
-
邻域(矩形)
-
预定义的操作
-
-
$m \times n$ 的模板
-
$m=2a+1, n= 2b+1$
-
最小为$3 \times 3$
-
-
滤波操作
-
$g(x,y) = \sum_{s=-a}^a \sum_{t=-b}^b w(s,t)f(x+s,y+t)$
-
$x$和$y$ 是可变的
-
-
线性空间滤波 $\leftrightarrow$ 频率域滤波
空间相关与卷积
-
相关(Correlation)
- 平移滤波器模板,计算每个位置乘积之和
-
卷积(Convolution)
- 与相关相似,但滤波器要旋转180度
-
实际中未必严格区分
-
$m \times n$的滤波器与图像做相关操作
- $w(x,y) \star f(x,y) = \sum_{s=-a}^a \sum_{t=-b}^b w(s,t)f(x+s,y+t)$
-
$m \times n$的滤波器与图像做卷积操作
- $w(x,y) \bigstar f(x,y) = \sum_{s=-a}^a \sum_{t=-b}^b w(s,t)f(x-s,y-t)$
线性滤波的向量表示
-
把滤波器和灰度值拉成向量
-
$R = w_1z_1 + w_2z_2 + … + w_{mn}z_{mn} = \sum_{k=1}^{mn}w_kz_k = \bf{w}^T\bf{z} $
-
$\bf{w}$ 是$m \times n$ 的滤波器系数
-
$\bf{z}$是相应图像的灰度值
-
空间滤波器模板
-
计算平均灰度
- $R = \frac{1}{9} \sum_{i=1}^9 z_i$
-
两变量的连续函数(高斯)
-
$h(x,y) = e^{-\frac{x^2+y^2}{2 \sigma^2}}$
-
$w_1 = h(-1,-1), w_2 = h(-1,0), .., w_9 =h(1,1)$
-
-
非线性滤波器
- 更加强大
平滑线性滤波器
-
均值滤波器
-
优点:降低噪声
-
缺点:边缘模糊
-
$R=\frac{1}{9} \sum_{i=1}^9 z_i$
-
先求和,再归一化
-
-
加权线性滤波器
-
非均匀权重
-
降低模糊
-
统计排序滤波器
-
非线性滤波器
-
对滤波器覆盖的像素排序
-
用排序决定的值替代中心像素
-
-
中值滤波器
- 10、15、20、20、20、20、20、25、100
-
最大值滤波器
- max
-
最小值滤波器
- min
锐化空间滤波器
-
目的
- 突出灰度的过渡部分
-
应用广泛
- 电子印刷、医学成像、工业检测、制导
数学基础
-
一阶微分的性质
-
在恒定灰度区域为零
-
在突变(斜坡、台阶)的起点非零
-
沿着斜坡非零
-
-
二阶微分的性质
-
在恒定灰度区域为零
-
在突变(斜坡、台阶)的起点和终点非零
-
沿着恒定斜率斜坡为零
-
-
一维函数$f(x)$
-
一阶微分
- $\frac{\partial f}{\partial x} = f(x+1) - f(x)$
-
二阶微分
- $\frac{\partial^2 f}{\partial x^2} = f(x+1) + f(x-1)-2f(x)$
-
直观的结论
-
数字图像的边缘类似于斜坡
-
一阶微分产生较粗的边缘
- 沿斜坡的微分一直非零
-
二阶微分产生两个有间距的双边缘
- 由零分开、单像素宽
-
二阶微分在增强细节方面比一阶微分好!
使用二阶微分对图像锐化
-
各向同性滤波器
- 旋转图像 $\rightarrow$ 滤波 = 滤波 $\rightarrow $ 旋转结果
-
拉普拉斯算子
-
$\nabla^2 f = \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2}$
-
线性算子
-
-
离散拉普拉斯算子
-
$\frac{\partial^2 f}{\partial x^2} = f(x+1,y) + f(x-1,y) - 2f(x,y)$
-
$\frac{\partial^2 f}{\partial y^2} = f(x,y+1) + f(x,y-1) -2 f(x,y)$
-
标准形式, 中心为-4, 四联通邻域为-1
-
对角线形式,中心为-8, 八连通邻域为-1
-
-
拉普拉斯算子结果叠加到图像中
-
$g(x,y) = f(x,y) + c[\nabla^2 f(x,y)]$
-
采用负的中心系数,$c=-1$
-
采用正的中心系数,$c=1$
-
非锐化掩蔽
-
从原图像减去一幅非锐化版本
-
模糊原图像
-
从原图像减去模糊图像,得到模板
-
将模板加到原图像
-
-
具体公式
-
$g_{mask}(x,y) = f(x,y) - \bar{f}(x,y)$
-
$g(x,y) = f(x,y) + k \times g_{mask}(x,y)$
-
模糊图像$\bar{f}(x,y)$
-
非锐化掩蔽$k=1$; 高提升滤波$k>1$
-
使用一阶微分对图像锐化
-
利用梯度的大小
-
梯度:最大变化率的方向
- 线性算子 $\nabla f \equiv grad(f) $
-
大小
- 非线性 $M(x,y) = mag(\nabla f) = \sqrt{g_x^2+g_y^2}$
-
近似计算
- $M(x,y) \approx |g_x| + |g_y|$
-
算术操作增强
-
算术/逻辑操作主要以像素对像素为基础在两幅或多幅图像间进行。
-
四大类:
- 加法
- 加法运算常用于减少图像中的随机噪声
- 定理:对$M$幅加性噪声图像进行平均,可以使图像的平方信噪比提高$M$倍。
-
减法
- 用来突出细节
-
乘法
- 通常用来进行掩模运算
- 除法
- 通常可以用来归一化
空间域图像增强(Part IV)
-
集合操作
-
逻辑操作
-
空间操作
-
单像素操作
-
邻域操作
-
几何空间变换
-
图像配准
-
-
灰度内插
灰度图像的集合操作
-
灰度图像集合$A$
-
元素为三元组$(x,y,z)$
- $x$和$y$是空间坐标,$z$是灰度
-
集合$A$的补集(大小不变)
-
$A^C = {(x,y,K-z)| (x,y,z)\in A}$
-
$K = 2^k -1$为灰度级数,$k$为比特数
-
-
集合$A$和$B$的并集
- $ A \cup B = { \max\limits_{z}{(a,b)} \ a\in A, b\in B }$
逻辑操作
-
二值图像
- 前景(1值)、背景(0值)
-
OR、AND、NOT逻辑操作
- 集合的并、交和求补操作
-
属于$A$不属于$B$ 操作
-
XOR操作
-
功能完备操作
- AND、OR和NOT
单像素操作
-
以灰度为基础改变单个像素的值
- 灰度变换
邻域操作
-
由输入坐标$(x,y)$的邻域像素决定
- 空间滤波
单像素操作、邻域操作对单幅图像做处理,不改变像素的空间位置
算术/逻辑运算对多幅图像做处理,也不改变像素的空间位置
几何变换
-
几何变换改变像素的空间位置使得图像得到增强
-
橡皮膜操作
-
在橡皮膜上印刷一幅图像
-
然后拉伸橡皮膜
-
-
几何变换包含两个独立的算法:空间变换算法和灰度内插算法
-
空间变换:描述每个像素空间位置的变换
-
灰度内插:确定变换后图像像素的灰度级
-
-
图像的每个坐标点$(v,w)$ 变换到新坐标点$(x,y)$
-
$(x,y) = T{(v,w)}$
-
图像坐标是离散的,网格的。变换后的坐标点可能不落在网格点上。
-
-
空间变换需要满足一个条件
-
保持图像中曲线型特征的连续性和各物体的连通性
-
简而言之的话——相邻的输入产生相邻的输出
-
-
任意的空间变换会弄乱图像内容,或者内容支离破碎
-
一个常用的空间变换:仿射变换(Affine Transformation)
仿射变换
-
仿射变换(Affine Transformation)包括了旋转、伸缩、平移、倾斜等变换
-
$x = t_{11}v + t_{21}w + t_{31}$
-
$y = t_{12}v + t_{22}w + t_{32}$
-
$t_{31}$和$t_{32}$ 刻画了平移量
-
$t_{11}$和$t_{22}$ 刻画了伸缩比例
-
$t_{12}$和$t_{21}$ 刻画了倾斜程度
-
整体组合刻画了平移、旋转角度、倾斜程度
-
-
优点
-
保持共线性(co-linearity)
- 共线的点变换后依然共线
-
保持距离比例(ratios of distance)
- 线的中心变换后依然是线的中心
-
-
几种变换
-
恒等变换
- $x=v$, $y = w$
-
伸缩变换
- $x= c_x v$, $y = c_y w$
-
旋转变换
- $x = v \cos{\theta} - w \sin{\theta}$ , $y = v \sin{\theta} + w \cos{\theta}$
-
平移变换
- $x=v + t_x$, $y = w + t_y$
-
(垂直)倾斜变换
- $x=v+s_v w$, $y = w$
-
(水平)倾斜变换
- $x=v$, $y = s_h v + w$
-
-
变换公式
-
$x= t_{11}v + t_{21}w + t_{31}$
-
$y = t_{12}v + t_{22}w + t_{32}$
-
矩阵形式:
- $[x \ y \ 1] = [v \ w \ 1] T_1 T_2 \cdot \cdot \cdot$
-
-
逆仿射变换
-
$T = T_1T_2T_3$
-
$T^{-1} = T_3^{-1} T_2^{-1} T_1^{-1}$
-
基本变换矩阵都是可逆矩阵
-
-
前向影射
-
根据输入$(v,w)$,计算输出$(x,y) = T{(v,w)}$
-
多个输入对应一个输出、空白输出
-
-
反向映射
-
根据输出$(x,y)$,寻找输入$(v,w) = T^{-1}{(v,w)}$
-
灰度内插
-
更加有效
-
图像配准
-
问题定义
-
输入图像、输出图像(参考图像)
-
估计变换函数
-
-
实际应用
-
相似时间内不同设备的图像
-
相同设备不同时间拍摄的图像
-
-
约束点
- 输入图像和输出图像中位置已知的相应点
点匹配法
-
在图像中寻找对应的点
-
如何将图像A、B对齐?
-
寻找匹配点
-
图像A中的n个点:P
-
图像B中的n个点:Q
-
寻找最优仿射变换
- $Q=PT$
-
求解线性方程
-
求解最小二乘
- $\min_{T} || Q-PT||_{F}^2$
-
闭合解:$T = (P^T P)^{-1}P^T Q$
线性内插
双线性内插
频率域图像增强,傅里叶变换
傅里叶级数:任何周期函数都可以表示为不同频率的正弦函数和/或余弦函数加权之和。
傅里叶变换:非周期函数也可以表示为不同频率的正弦函数和/或余弦函数加权之后的积分。
欧拉公式:$e^{j \theta} = \cos \theta + j \sin \theta $
在0处的连续单位冲激:$\delta(t) = \begin{cases} \infty & \text{if } t= 0\ 0 & \text{if } t \not= 0 \end{cases}$, 且满足 $\int_{-\infty}^{\infty} \delta(t) dt =1$
采样性质: $\int_{-\infty}^{\infty} f(t) \delta(t) dt = f(0)$
在$t_0$处的连续单位冲激:$\delta(t-t_0)$
在0处的离散单位冲激: $\delta(x) = \begin{cases} 1 & x=0 \ 0 & x \not= 0\end{cases}$ ,且满足$\sum\limits_{x=-\infty}^{\infty} \delta(x) = 1$
采样性质$\sum\limits_{x=-\infty}^{\infty} f(x) \delta(x) = f(0)$
在$x_0$处的离散单位冲激$\delta(x-x_0)$
冲激串:
无穷个以$\Delta T$ 为间距的周期性冲激之和
$s_{\Delta T} = \sum\limits_{n = -\infty}^{\infty} \delta(t-n\Delta T)$, $\delta$ 可以是连续的,也可以是离散的
傅里叶级数
傅里叶级数可以理解为把$f(t)$ 在$e^{j \frac{2 \pi n}{T}t}$ 生成的空间中表示出来,其中基向量两两正交,所以系数就是$<f(t), e^{j \frac{2\pi n}{T}t}>$
$f(t)$是周期为$T$的周期函数
$f(t) = \sum\limits_{n= -\infty}^{infty} c_n e^{j \frac{2 \pi n}{T}t}$, 其中 $c_n = \frac{1}{T} \int_{-T/2}^{T/2} f(t) e^{-j \frac{2 \pi n}{T}t} dt$
连续函数的傅里叶变换
$\Im{f(t)} = \int_{-\infty}^{\infty} f(t) e^{-j2 \pi \mu t} dt$, 区中$\mu$ 是连续变量
表示成$\mu$ 的函数: $F(\mu) = \int_{-\infty}^{\infty} f(t) e^{-j 2 \pi \mu t} dt$ , $\mu$ 表示频率,单位是$Hz$
傅里叶反变换:$f(t) = \int_{-\infty}^{\infty}F(\mu) e^{j2 \pi \mu t} d \mu$
盒状函数的傅里叶变换:$F(\mu) = AW \frac{\sin (\pi \mu W)}{(\pi \mu W)}$
$sinc(m) = \frac{\sin (\pi m)}{(\pi m)}$
连续单位冲激的傅里叶变换:$F(\mu) = \int_{-\infty}^{\infty} \delta(t) e^{-j 2 \pi \mu t} dt = \int_{-\infty}^{\infty} e^{-j 2 \pi \mu t} \delta(t) dt = e^{-j2 \pi \mu 0} = e^0 = 1$
$t_0$ 处连续单位冲激的傅里叶变换:$F(\mu) = e^{-j2 \pi \mu t_0} = \cos(2 \pi \mu t_0) - j \sin(2 \pi \mu t_0)$
$f(t)$的傅里叶变换为$F(\mu)$, $F(t)$ 的傅里叶变换为$f(-\mu)$
$\delta(t-t_0) \rightarrow e^{-j2 \pi \mu t_0}$, $e^{-j 2\pi t_0 t} \rightarrow \delta(-\mu - t_0)$, $\rightarrow$代表傅里叶变换
$\delta(t-t_0) \rightarrow e^{-j 2 \pi \mu t_0}$ , $e^{j 2 \pi a t} \rightarrow \delta(-\mu +a) = \delta(\mu -a)$
冲激串
$s_{\Delta T}(t) = \sum\limits_{n = - \infty}^{\infty} \delta(t-n \Delta T)$
傅里叶级数:$s_{\Delta T}(t) = \frac{1}{\Delta T} \sum\limits_{n = -\infty}^{\infty} e^{j \frac{2 \pi n}{\Delta T}t}$
傅里叶变换: $\Im{e^{j \frac{2 \pi n}{\Delta T}t} } = \delta(\mu - \frac{n}{\Delta T})$. 所以 $S(\mu) = \frac{1}{\Delta T} \sum\limits_{n=-\infty}^{\infty} \delta(\mu - \frac{n}{\Delta T})$
连续卷积
连续函数的卷积:$f(t) \star h(t) = \int_{-\infty}^{\infty} f(\tau) h(t - \tau) d \tau$, $t$是位移,负号表示反转
平移性质:$\Im{h(t - \tau) } = H(\mu) e^{-j2 \pi \mu \tau}$
$\Im{ f(t) \star h(t) } = H(\mu) F(\mu)$
卷积定理
- 空间域卷积的傅里叶变换 $\Leftrightarrow$ 傅里叶变换在频率域的乘积 : $f(t) \star h(t) \Leftrightarrow H(\mu) F(\mu) $
- 空间域乘积的傅里叶变换$\Leftrightarrow$ 傅里叶变换在频率域的卷积:$f(t)h(t) \Leftrightarrow H(\mu) \star F(\mu)$
连续函数采样
$\tilde{f}(t) = f(t) s_{\Delta T} (t) = \sum\limits_{n = - \infty} ^{\infty} f(t) \delta(t - n \Delta T)$
采样值:$f_k = \int_{-\infty}^{\infty}f(t) \delta(t-k \Delta T) dt = f(k \Delta T)$
$\tilde{F}(\mu) = \Im{\tilde{f}(t) } = \Im{f(t)s_{\Delta T}(t) } = F(\mu) \star S(\mu)$
采样定理
带限函数$f(t)$: 傅里叶变换后非零频率属于$[-\mu_{\max}, \mu_{\max}]$
采样定理:如果以超过函数最高频率的两倍采样率来获得样本,连续的带限函数可以完美地从它的样本集来恢复。
奈奎斯特频率:$2\mu_{\max}$
混淆:在实际中,不可以避免,因为即使原函数是带限的,但采样仍然是有限的。有限长度采样会引入无限频率分量。
抗混淆
- 一个带限函数一定是从$-\infty$ 扩展到$\infty$
- 没有有限持续时间的函数是带限的
- 有限长度的采样,混淆是不可避免的。
- 抗混淆
- 事先防止或减轻混淆
- 平滑输入函数,减少高频分量
- 图像散焦
由样本恢复原函数
- 频率域操作
- $F(\mu) = H(\mu) \tilde{F}(\mu)$
- 空间域操作
- $f(t) = \int_{-\infty}^{\infty}F(\mu) e^{j 2 \pi \mu t} d \mu$
- $f(t) = \Im^{-1}{F(\mu) } = \Im^{-1}{H(\mu)\tilde{F}(\mu) } = h(t) \star \tilde{f}(t)$
- 化简
- $\tilde{f}(t) = f(t) s_{\Delta T}(t) = \sum\limits_{n = -\infty}^{\infty} f(t) \delta(t-n\Delta T)$
- $h(t) = \frac{\sin(\pi t / \Delta T)}{\pi t / \Delta T}$
- 函数内插:$f(t) = \sum\limits_{n = - \infty}^{\infty}f(n \Delta T) sinc[(t-n\Delta T)/n \Delta T]$
- 无限个样本的内插,但实际中只能近似,如灰度内插
- $t= k \Delta T$ 时, $f(t) = f(k \Delta T)$
扩展:超越采样定理
- 压缩感知
- 稀疏
- 矩阵补全
- 低秩
离散傅里叶变换(DFT)
-
对$\tilde{F}(\mu)$的一个周期为$[0,1/\Delta T]$采样
- $\mu = \frac{m}{M \Delta T}$, $m=0,1,2,…,M-1$
-
考虑$M$个样本构造的$\tilde{F}(\mu)$
- $\tilde{F}(\mu) = \sum_{n=0}^{M-1} f_n e^{-j 2 \pi \mu n \Delta T}$
-
离散傅里叶变换(DFT)
- $F_m = \sum_{n=0}^{M-1}f_n e^{-j 2 \pi m n /M}$, $m=0,1,2,…,M-1$
-
离散傅里叶反变换(IDFT)
- $f_n = \frac{1}{M} \sum_{m=0}^{M-1}F_me ^{j 2 \pi m n /M}$, $n=0,1,2,…,M-1$
- 表达式不依赖采样间隔、频率间隔
- 适用于任何均匀取样的有限离散样本集
-
无限周期、周期为$M$
- $F(u) = F(u+kM)$, $f(x) = f(x+kM)$
离散卷积:
- $f(x) \star h(x) = \sum\limits_{m=0}^{M-1} f(m) h(x-m)$
- $x=0,1,2,…,M-1$
- 周期函数,也被称为循环卷积
- 卷积定理仍然成立
图像中的混淆
- 有限长度的采样,混淆是不可避免的
- 一维、二维…..
- 空间混淆
- 欠采样
- 锯齿、伪高光、虚假模式
- 时间混淆
- 图像系列中的时间间隔有关
- 例如电影中车轮倒转
图像采样
- 图像放大
- 可以理解为过采样
- 整数倍放大:水平和垂直方向像素复制
- 一般情况:图像缩小$\rightarrow$ 灰度内插
- 图像缩小
- 可以理解为欠采样
- 整数倍缩小:水平和垂直方向行列删除
- 一般情况:图像放大$\rightarrow$ 灰度内插
莫尔模式
两个近似等间隔的光栅产生的差拍模式
二维离散傅里叶变换对
- 二维离散傅里叶变换(DFT)
- $F(u,v) = \sum\limits_{x=0}^{M-1} \sum\limits_{y=0}^{N-1} f(x,y) e^{-j 2 \pi (ux/M + vy/N)}$
- $u=0,1,…,M-1$, $v=0,1,…,N-1$
- $f(x,y)$是大小为$M \times N$的数字图像
- 二维离散傅里叶变换(IDFT)
- $F(u,v) = \frac{1}{MN} \sum\limits_{u=0}^{M-1} \sum\limits_{v=0}^{N-1} F(u,v) e^{j2 \pi (ux/M + vy/N)}$
- $x=0,1,…,M-1$, $y=0,1,…,N-1$
平移和旋转
- 平移性
- $f(x-x_0,y-y_0) \Leftrightarrow F(u,v) e^{- j 2 \pi ( x_0 u/M + y_0 v / N)}$
- $f(x,y) e^{j 2 \pi (u_0 x /M + v_0 y / N)} \Leftrightarrow F(u-u_0, v-v_0)$
- 平移不影响幅值
- 中心化:
- $f(x,y)(-1)^{x+y} \Leftrightarrow F(u-M/2,v-N/2)$
- 旋转性
- $f(x,y)$ 旋转$\theta_0$, 则$F(u,v)$旋转相同的角度。
- 对称性
- 实函数$f(x,y)$的傅里叶变换是共轭对称
- $F^{*}(u,v) = F(-u,-v)$
- 虚函数$f(x,y)$的傅里叶变换是共轭反对称
- $F^* (-u,-v) = - F(u,v)$
- 实函数$f(x,y)$的傅里叶变换是共轭对称
傅里叶谱和相角
- 幅度(傅里叶谱)
- $|F(u,v| = [R^2(u,v) + I^2 (u,v)]^{1/2}$
- 相角$[- \pi, \pi]$
- $\phi(u,v) = \arctan{[\frac{I(u,v)}{R(u,v)}]}$
- 功率谱
- $P(u,v) = |F(u,v)|^2$
- 实函数$f(x,y)$的傅里叶变换是共轭对称
- $F^* (u,v) = F(-u,-v)$
- 傅里叶谱是关于原点偶对称
- $|F(u,v)| = |F(-u,-v)|$
- 相角是关于原点奇对称
- $\phi(u,v) = - \phi(-u,-v)$
$|F(0,0)| = MN |\bar{f}(x,y|$, $F(0,0)$ 被称作直流分量(频率为0)
傅里叶谱决定了正弦波的幅度,表示灰度
相角表示正弦波的位移,携带了定位信息
图像平移不改变傅里叶谱
图像旋转$\theta_0$, 谱图旋转同样的角度: $f(r,\theta + \theta_0) \Leftrightarrow F(\omega, \phi+\theta_0)$
0填充
- $f(x)$有$A$个样本,$g(x)$有$B$个样本
- 对样本后面补0,使其长度为$P$
- 缠绕错误可以避免,如果:$P \ge A+B-1$
- 要让卷积定理和直接卷积一致,需要0填充
Ch08
提纲:
- 频率域滤波
- 频率域性质
- 频率域滤波基础
- 空间和频率域对应关系
- 平滑图像
- 理想低通滤波器
- 巴特沃斯低通滤波器
- 高斯低通滤波器
频率域性质
图像空间特征和频率分量的一般性关系
- 变化最慢的分量,与平均灰度成正比
- 低频对应于图像中缓慢变化的灰度(墙)
- 高频对应于图像中剧烈变化的灰度(边缘)
频率域滤波:
- 空间域 —-傅里叶变换—> 频率域 —-滤波—> 频率域 —傅里叶反变换—> 空间域
傅里叶变换:
- $F(u,v) = |F(u,v)|e^{j \phi(u,v)}$
- 幅度(傅里叶谱) $|F(u,v)|$、 相角$\phi(u,v)$
- 视觉分析难以利用相角
- 傅里叶谱可以大致刻画图像
频率域滤波基础
- 基本公式: $g(x,y) = \Im^{-1} [H(u,v) F(u,v)]$
- $F(u,v)= \Im[f(x,y)]$ 是图像$f(x,y)$的DFT
- $H(u,v)$是滤波函数(滤波器)
- $H$实对称, $f$是实数 $\Rightarrow$ $g$是实数
- 但存在计算误差,忽略$g$中虚数
- 假设$F(u,v)$已经中心化
- $f(x,y) (-1)^{x+y} \Leftrightarrow F(u-M/2, v-N/2)$
- 只需要考虑中心对称的$H(u,v)$
低通滤波器:衰减高频而通过低频,模糊图像. 低频对应于图像中缓慢变换的灰度
高通滤波器:衰减低频而通过高频,强化细节。高频对应于图像中剧烈变换的灰度。
二维0填充
- f(x,y) 是 $A \times B$大小的图像
- $h(x,y)$是$C \times D$大小的图像
- 缠绕错误可以避免,如果对$f$和$h$进行补零, 其中$P \ge A+C-1$, $Q \ge B+D-1$
- 选择偶数会让计算更快
如何对频域滤波器0填充
- 第一种方案:
- 频域滤波器 —傅里叶反变换—> 图像 —0填充—> 图像 —傅里叶变换—> 频域滤波器
- 缺点:频率域出现波动
- 第二种方案(更常用)
- 对图像进行0填充,并计算傅里叶变换
- 设计与填充后图像一样大的频域滤波器
- 并不能完全避免缠绕错误
- 实际效果很好,比第一种方案更佳
空间滤波器一般流程
- 给定一幅大小为$M \times N$ 的输入图像$f(x,y)$, 选择填充参数$P$和$Q$。 典型地,我们选择$P=2M$ 和 $Q=2N$
- 对$f(x,y)$ 添加必要数量的0, 形成大小为$P \times Q$ 的填充后图像$f_p (x,y)$
- 用$(-1)^{x+y}$ 乘以$f_p(x,y)$ 移到其变换的中心
- 计算来自步骤3的图像的DFT,得到$F(u,v)$
- 生成一个实的、对称的滤波函数$H(u,v)$, 其大小为$P \times Q$, 中心在$(\frac{P}{2}, \frac{Q}{2})$ 处。用阵列相乘形成乘积$G(u,v) = H(u,v) F(u,v)$
- 得到处理后的图像:$g_p(x,y) = { real[\Im^{-1}[G(u,v)] ] } (-1)^{x+y}$
- 通过$g_p(x,y)$的左上象限提取$M \times N$ 区域,得到最终处理结果$g(x,y)$
零相移滤波器
- 假设滤波器为实数
- $g(x,y) = \Im^{-1} [H(u,v)F(u,v)]$
- $g(x,y) = \Im^{-1} [H(u,v)R(u,v) + jH(u,v)I(u,v)]$
- 其中: $F(u,v) = R(u,v) + j I(u,v)$
- 相角保持不变
频率域滤波器-> 空间滤波器
-
构造各种频率域滤波器做实验
- 频率域滤波器更加直观
-
选择合适的频率域滤波器
-
构造空间滤波器来近似频率域滤波器
- 通常构造"较小"的空间滤波器
- 空间滤波器更易实现,更高效
-
一维频率域高斯滤波器
- $H(u) = A e^{-u^2 / 2 \sigma^2}$
-
空间域对应的滤波器
- $h(x) = \sqrt{2 \pi} \sigma A e^{-2 \pi^2 \sigma^2 x^2}$
-
标准差的反向关系
-
利用高斯函数构造高通滤波器
- $H(u) = A e^{-u^2 / 2 \sigma_1^2} - B e^{-u^2 / 2 \sigma_2^2}$
-
空间域对应的滤波器
- $h(x) = \sqrt{2 \pi} \sigma_1 A e^{-2 \pi^2 \sigma_1^2 x^2} - \sqrt{2 \pi} \sigma_2 B e^{-2 \pi^2 \sigma_2^2 x^2}$
理想低通滤波器
- $H(u,v) = \begin{cases} 1 & \text{ if } D(u,v) \le D_0 \ 0 & \text{ if } D(u,v) > D_0 \end{cases}$
- $D_0$ 为某常数,被称为截止频率
- $D(u,v)$ 为$(u,v)$ 到中心的距离
- $D(u,v) = [(u-P/2)^2 + (v-Q/2)^2]^{1/2}$
- 理想
- 低频完全保留
- 高频完全抑制
- 透视图
- 圆柱体
- 硬件无法实现
- 傅里叶变换的功率分布
- 总功率:$P_T = \sum\limits_{u=0}^{P-1} \sum\limits_{v=0}^{Q-1} P(u,v)$
- 其中:$P(u,v) = |F(u,v)|^2 = R^2(u,v) + I^2 (u,v)$
- 半径为$D_0$的圆包含的功率百分比
- $\alpha = 100 [\sum\limits_u \sum\limits_v P(u,v) / P_T ]$
- $(u,v)$ 属于圆内
- 总功率:$P_T = \sum\limits_{u=0}^{P-1} \sum\limits_{v=0}^{Q-1} P(u,v)$
有振铃现象
振铃效应是一种出现在信号快速转换时,附加在转换边缘上导致失真的信号。而在图像或影像上,振铃效应会导致出现在边缘附近的环带或像是"鬼影"的环状伪影
巴特沃斯低通滤波器
- $n$ 阶巴特沃斯(Butterworth)低通滤波器
- $H(u,v) = \frac{1}{1+ [D(u,v)/D_0]^{2n}}$
- $D(u,v)$ 为$(u,v)$到中心的距离
- $D_0$ 为截止频率
没有振铃(ringing)现象
$n=2$是比较好的折中
高斯低通滤波器
- 数学定义
- $H(u,v) =e ^{-D^2(u,v)}/ 2 \sigma^2$
- 令$\sigma = D_0$
- $H(u,v) = e^{-D^2(u,v)/2D_0^2}$
- $D_0$ 为截止频率
- 当$D(u,v) = D_0$, $H(u,v) = 0.607$
高斯函数的傅里叶变换依然是高斯
没有振铃现象
巴特沃斯低通滤波器比高斯低通滤波器更模糊
Ch09
提纲
- 锐化图像
- 理想高通、巴特沃斯、高斯高通滤波器
- 频率域拉普拉斯算子
- 频率域非锐化掩蔽
- 同态滤波
- 选择性滤波
- 带阻滤波器、带通滤波器
- 陷波滤波器
- 实现
如何构造高通滤波器:
- 从低通滤波器构造高通滤波器
- $H_{HP} (u,v) = 1- H_{LP}(u,v) $
- $H_{LP}(u,v)$是高通滤波器
- 理想高通滤波器
- 巴特沃斯高通滤波器
- 高斯高通滤波器
理想高通滤波器
- 数学定义: 略过
- 理想
- 低频完全抑制
- 高频完全保留
- 硬件无法实现
- 产生了振铃现象
- 随着$D_0$的增大,振铃有所缓解
巴特沃斯高通滤波器
- 轻微振铃现象
- 对比理想高通,巴特沃斯高通滤波器,更清晰,失真小, 对小物体的识别能力相当
高斯高通滤波器
- 高斯滤波的结果更清晰一些
频率域的拉普拉斯算子
- 拉普拉斯算子
- $\nabla^2f = \frac{\partial^2 f}{\partial x^2}+ \frac{\partial^2 f}{\partial y^2}$
- 傅里叶变换
- $\nabla^2 f(t,z) \Leftrightarrow -4\pi^2 (\mu^2 + \nu^2) F(\mu,\nu)$
- 频域滤波器
- $H(u,v) = - 4 \pi^2 (u^2+v^2)$
- 频域滤波器(中心化)
- $H(u,v) = -4\pi^2[(u-P/2)^2 + (v-Q/2)^2] = -4 \pi^2 D^2(u,v) $
- 拉普拉斯图像
- $\nabla^2 f(x,y) = \Im^{-1} {H(u,v)F(u,v)}$
- 频率域滤波、傅里叶反变换
- $F(u,v)$是原图像的DFT
- 图像锐化
- $g(x,y) = f(x,y)+ c \nabla^2 f(x,y)$
- $f(x,y)$和$\nabla^2 f(x,y)$ 不在一个数量级!
- $c=-1$
- $f(x,y)$ 归一化到$[0,1]$, 再计算DFT
- $\nabla^2 f(x,y)$ 归一化到$[-1,1]$
Ch10. 图像复原
提纲
- 图像退化/复原建模
- 噪声模型
- 仅有噪声的图像复原
- 均值、统计排序、自适应滤波器
- 频域滤波消除周期噪声
- 带阻、带通、陷波、最佳陷波
- 估计退化函数
- 逆滤波
引言:
- 图像复原
- 以预先制定的目标改善图像,客观
- 对模糊图像去模糊
- 利用退化现象的先验知识来恢复图像
- 建模退化过程 -> 利用逆过程复原图像
- 图像增强
- 由人的主观感受来评判,主观
- 对比度拉伸、增强
图像退化/复原建模
-
输入$f(x,y)$
-
退化函数$H$
-
加性噪声$\eta (x,y)$
-
复原滤波器
-
输出$\hat{f}(x,y)$
-
目标: $f(x,y) \approx \hat{f}(x,y)$
-
$H$为线性,位置不变
- $g(x,y) = h(x,y) \star f(x,y) + \eta(x,y)$
- $h(x,y)$是退化函数的空间表示
-
频率域表示
- $G(u,v) = H(u,v)F(u,v) + N(u,v)$
噪声
- 当$H=I$时
- $G(u,v) = F(u,v) +N(u,v)$
- 噪声来源
- 图像获取:环境条件、传感器质量
- 图像传输:无线信号被干扰
- 刻画噪声
- 空间域和频率域特点
- 白噪声:傅里叶变换后为常数
- 噪声是否和图像有关
- 空间域和频率域特点
- 噪声的空间表示
- 概率密度函数(PDF)
噪声类型
- 高斯噪声
- 电路噪声,传感器噪声
- 瑞利噪声
- 范围成像
- 爱尔兰(伽马)噪声
- 激光成像
- 指数噪声
- 激光成像
- 均匀噪声
- 仿真生成随机数
- 脉冲(椒盐)噪声
- 快速过渡
仅有噪声的图像复原
- 仅有噪声的图像退化
- 空间域: $g(x,y)=f(x,y) + \eta(x,y)$
- 频率域:$G(u,v) = F(u,v) + N(u,v)$
- 周期噪声
- 从$G(u,v)$ 估计$N(u,v)$, 直接减去噪声
- 一般加性噪声
- 空间滤波
统计排序滤波器
- 非线性滤波器
- 对滤波器覆盖的像素排序
- 用排序决定的值替代中心像素
- 中值滤波器
- $\hat{f} (x,y) = median {g(s,t)}, (s,t)\in S_{xy} $
- $(x,y)$ 处的像素值也参与计算
- 良好的去噪能力,并且模糊少
- 尤其适用于单极或双极的脉冲信号
- 最大值滤波器
- 寻找图像中的亮点
- 降低胡椒噪声
- 最小值滤波器
- 寻找图像中的暗点
- 降低盐粒噪声
- 中点滤波器
- 最大值和最小值的中点
- 结合了统计排序和求平均
- 适用于随机噪声
- 高斯噪声、均匀噪声
- $\alpha$截断的均值滤波
- 去掉$S_{xy}$中灰度最低的$d/2$个像素
- 去掉$S_{xy}$中灰度最高的$d/2$个像素
- $\hat{f} (x,y) =\frac{1}{mn-d} \sum\limits_{(s,t) \in S_{x,y} } g_r(s,t)$
- 适用于存在多种噪声的情况
- 高斯噪声、椒盐噪声混合
- $d=0$, 算数均值滤波器
- $d=mn-1$, 中值滤波器
Ch11. 彩色图像处理(I)
-
全彩色:用全彩色传感器获取的真实彩色
-
伪彩色:为特定灰度或灰度范围赋予颜色
-
无色光
- 灰度级:表示强度的数值
-
彩色光
- 约为400-700纳米电磁波
- 辐射:能量(瓦特)
- 光强:感知的能量(流明)
- 亮度:主观描绘
-
主颜色
- 红色、绿色、蓝色
-
次生色(secondary colors)
- 主颜色叠加
-
颜料的主颜色
- 吸收光的主颜色
区分颜色:
- 亮度:主观描绘,类似于无色光的强度
- 色调:主波长,也就是感知到的颜色
- 饱和度:
- 反应白光的比例,白光越多越不饱和
- 红色+白色=粉红色、紫色+白色=淡紫色
- 色度:色调、饱和度
伪彩色图像处理
按照特定规则对灰度值赋颜色
便于可视化和理解灰度事件
灰度分层
根据截面分配两种颜色
也可以截取k个面,分成$k+1$个颜色。
也可以对每个RGB做一次灰度变换。
RGB彩色模型
- 面向彩色显示器
- 笛卡尔坐标系
- 红绿蓝在三个角
- 黑色在原点
- 白色在最远的角
- 中间虚线是灰色
- 正则化
- 属于$[0,1]$
- 3幅分量图像
- 每种主颜色对应一幅图像
- 叠加在一起合成一幅彩色图像
- 像素深度(pixel depth)
- 表示每个像素的比特数
- 全彩色图像
- 24比特的RGB图像
- 颜色数目$2^{24} = 16777216$
- 高端显卡或显示器
- 支持24比特的RGB图像
- 低端设备
- 通常只能显示256种彩色
- 更多的颜色有时没有意义
- 稳定RGB色(safe RGB colors)
- 真实展现、与硬件无关
- 互联网:稳定Web色
- 通常包括216颜色
- 每个RGB只有六种取值: $6^3 =216$
CMY颜色模型
- 青色(C)、洋红(M)、黄色(Y)
- 彩色打印机
- 转换公式
- [C M Y] = [1 1 1] - [R G B]
- CMYK颜色模型
- CMY的混合产生的黑色不纯
- 添加了黑色(K)
HSI颜色模型
- RGB/CMY颜色模型不够直观
- 人不会直接用这些数字来描述颜色
- 色调(hue)
- 主波长,也就是感知到的颜色
- 饱和度(saturation)
- 反应白光的比例,白光越多越不饱和
- 亮度(brightness)
- 主观描绘,类似于无色光的强度(intensity)
- HSI模型将亮度和颜色相关的信息解耦合
- 颜色相关的信息:色调、饱和度
- 对人而言更直观
- 强度(intensity)
- 平行面与强度轴的交点
- 饱和度(saturation)
- 与强度轴的距离相反
- 强度轴上的饱和度为0
Ch13. 图像分割
引言:
- 图像分割:
- 把图像细分为构成它的区域或物体
- 分割的粒度取决于应用问题
- 分割是图像处理最困难问题之一
- 分割的精度决定了处理任务的成败
- 分割的基本原理
- 灰度的不连续性:根据灰度的突变分割
- 灰度的相似性:区域内的图像很相似
基础知识:
- R表示图像所占的区域
- 图像分割将R分割成$n$个区域$R_1,…,R_n$
- $\cup_{i=1}^n R_i = R$
- $R_i$是一个连通集合,$i=1,…,n$
- $R_i \cap R_j = \emptyset, \forall i \not= j$
- $Q(R_i) = True, i=1,…,n$
- 对于任意的相邻区域$R_i$和$R_j$, $Q(R_i \cup R_j) = False$
- $Q(\cdot)$ 表示某个用于划分区域的函数
基本概念:
- 边缘
- 边缘像素:灰度发生剧烈变化
- 边缘是连通的边缘像素集合
- 线
- 一种特殊的边缘
- 两侧的灰度值都很大或都很小
- 点
- 长宽只有一个像素的线
背景知识:
- 1阶或2阶导数可以检测灰度突变
- 1阶导数的性质
- 在恒定灰度区域为零
- 在突变(斜坡、台阶)的起点非零
- 沿着斜坡非零
- $\frac{\partial f}{\partial x} = f'(x) = f(x+1)-f(x)$
- 2阶导数的性质
- 在恒定灰度区域为零
- 在突变(斜坡、台阶)的起点和终点非零
- 沿着恒定斜率斜坡为零
- $\frac{\partial^2 f}{\partial x^2} = \frac{\partial f'(x)}{\partial x} = f'(x+1) - f'(x) = f(x+2)-2f(x+1)+f(x)$
- 我们一般写成:$\frac{\partial^2 f}{\partial x^2} = f(x+1)+f(x-1)-2f(x)$
一般结论:
- 一阶导数通常产生较粗的边缘
- 二阶导数对细节有较强的响应
- 细线、孤立点、噪声
- 二阶导数在斜坡和台阶产生双边缘响应
- 二阶导数的符号变换有指示意义
- 灰度从亮到暗
- 灰度从暗到亮
孤立点的检测
- 利用二阶导数检测孤立点
- 响应更强
- 拉普拉斯算子
- $\nabla^2 f(x,y) = \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2} = f(x+1,y) + f(x-1,y) + f(x,y+1) + f(x,y-1)-4f(x,y)$
- 检测方法
- 根据响应幅度是否大于某阈值$T$
- $g(x,y) = \begin{cases} 1 & \text{if} |R(x,y)| \ge T\ 0 & \text{otherwise} \end{cases}$
- 其中$R = \sum\limits_{k=1}^9 w_k z_k$
线检测
- 利用二阶导数检测线
- 响应更强、更细的线
- 需要留意双线效应
- 拉普拉斯算子
- 可以只保留正数
边缘模型
- 台阶边缘(Step Edge)
- 1个像素距离上发生灰度级的理想过渡
- 经常出现在计算机生成的图像中
- 斜坡边缘(Ramp Edge)
- 实际边缘通常是模糊(聚焦机制)、有噪声(电子器件)
- 斜率与模糊程度成反比
- 一阶导数的大小用来检测其像素处是否存在边缘
- 二阶导数的符号用来确定一个边缘像素位于亮或暗区域
- 屋顶边缘(Roof Edge)
- 表示穿过区域的线
- 出现在数字化的线条图、卫星图像中的道路
- 三种边缘通常同时出现
- 陡峭的斜坡通常被认为是台阶
存在噪声的边缘:
- 视觉上噪声并不明显
- 噪声对导数影响很大
- 二阶导数无法辨认
- 存在噪声时,图像平滑很必要
边缘检测的三个基本步骤
- 为降噪对图像进行平滑处理
- 导数对噪声敏感
- 边缘点的检测
- 抽取所有的潜在边缘点
- 边缘定位
- 选出真正的边缘点
基本边缘检测
图像的梯度及其性质:
- 梯度:最大变化率的方向
- 线性算子 $\nabla f \equiv grad(f) \equiv [g_x, g_y]^T = [\frac{\partial f}{\partial x} , \frac{\partial f}{\partial y}]^T $
- 大小
- 非线性: $M(x,y) = mag(\nabla f) = \sqrt{g_x^2 + g_y^2}$
- 近似计算: $M(x,y) \approx |g_x| + |g_y|$
- 方向
- $\alpha(x,y) = tan^{-1} [\frac{g_y}{g_x}]$
- 边缘的方向和梯度正交
梯度算子:
- 罗伯特交叉梯度算子
- $g_x = \frac{\partial f}{\partial x} = (z_9 -z_5)$
- $g_y = \frac{\partial f}{\partial y} = (z_8 -z_6)$
- 非中心化
- 考虑对角方向
- 普鲁伊特(Prewitt)算子
- $g_x = (z_7 + z_8 +z_9) - (z_1 +z_2 + z_3)$
- $g_y = (z_3 + z_6 + z_9) - (z_1 + z_4 + z_7)$
- 关于中心点对称
- Sobel算子
- $g_x = (z_7 + 2z_8 +z_9) - (z_1 +2z_2 + z_3)$
- $g_y = (z_3 + 2z_6 + z_9) - (z_1 + 2z_4 + z_7)$
- 关于中心点对称
高级边缘检测
- 基本边缘检测
- 没有考虑边缘的性质
- 没有考虑噪声模型
- Marr-Hildreth边缘检测器
- 坎尼(Canny)边缘检测器
Marr-Hildreth边缘检测器
- 灰度变化和图像尺度有关
- 需要用不同尺寸的算子
- 灰度变化会影响导数
- 一阶导数出现波峰或波谷
- 二阶导数出现零交叉
- 理想的检测器具有如下功能
- 能够近似1阶或2阶导数
- 能够被调整以在不同尺寸上起作用
- 大的算子检测模糊边缘、小的算子检测细节
滤波器$\nabla^2 G$
- $\nabla^2$是拉普拉斯算子
- $\nabla^2 = \frac{\partial^2}{\partial x^2} + \frac{\partial^2}{\partial y^2}$
- $G$是二维高斯函数
- $G(x,y) = e^{- \frac{x^2+y^2}{2 \sigma^2}}$
- 其中$\sigma$是标准差
- 满足上页两个条件的最佳算子
- 高斯的拉普拉斯(LoG)
优势
- 高斯部分会模糊图像
- 可以去掉尺寸小于$\sigma$ 的细节,比如噪声
- 二阶导数
- 各向同性,对任何方向的变化有相同的响应
- 符合人的视觉系统
步骤:
- 用$n \times n$ 的高斯低通滤波器平滑图像
- $n$是大于等于$6 \sigma$的最小奇数
- 计算上述图像的拉普拉斯
- 寻找上述结果的零交叉
- 检查某像素两个相对 邻域像素的符号(上下、左右、两对角)
- 符号相反,并且差异大于某阈值
产生闭环 “意大利空心粉”效应, 通过阈值化可以缓解
坎尼(Canny)边缘检测器
- 低错误率
- 所有边缘都被找到,并且没有伪响应
- 边缘点应被很好地定位
- 已定位的边缘必须尽可能接近真实边缘
- 单一的边缘点响应
- 对每个真实边缘点,检测器仅返回一个点
- 数学分析
- 考虑加性高斯白噪声污染的1维台阶边缘
- 高斯一阶导数是近似最优的检测器
- 拓展到二维情况
- 挑战:边缘可能是任意方向
- 使用二维高斯函数
- 基于梯度寻找边缘的方向
步骤:
- 高斯函数平滑输入图像
- 计算图像的梯度
- 非最大抑制
- 目的:把梯度生成的粗边缘变细
- 指定梯度(边缘法线)的多个离散方向
- 4种边缘:水平、垂直、+$45^{\circ}$, $-45^{\circ}$
- 根据梯度(边缘法线)的方向确定边缘的方向
- 考虑$(x,y)$为中心的$3 \times 3$区域
- 考虑四个方向
- 确定和梯度$\alpha(x,y)$最接近的方向$d_k$
- 如果$M(x,y)$的值比$(x,y)$在$d_k$方向的任一邻居数值小,对其抑制
- $g_N(x,y) = 0$
- 否则,保留:
- $g_N(x,y) = M(x,y)$
- 滞后阈值
- 目的:减少伪边缘点
- 两个阈值:低阈值$T_L$、 高阈值$T_H$
- 两个阈值的比值为: $2:1$或$3:1$
- 利用$T_H$阈值化
- 强边缘点: $g_{NH} (x,y) = g_N(x,y) \ge T_H$
- 利用$T_L$阈值化
- $g_{NL}(x,y) = g_N(x,y) \ge T_L$
- $g_{NL}$包含$g_{NH}$的所有非零元素
- 去掉$g_{NL}$ 中和$g_{NH}$重复的点
- $g_{NL}(x,y) = g_{NL}(x,y) - g_{NH}(x,y)$
- 弱边缘点
- 连通性分析
- 遍历$g_{NH}$中的每一个点$p$
- 保留$g_{NL}$中和$p$ 连通(例如8连通)
- 去掉$g_{NL}$剩余的点
- 合并$g_{NH}$ 和 $g_{NL}$
- 遍历$g_{NH}$中的每一个点$p$
Ch14. 图像分割
背景:
- 边缘检测的结果不完美
- 噪声
- 不均匀照明导致的边缘间断
- 虚假的灰度值不连续
- 边缘连接
- 将边缘像素组合成有意义的边缘或区域边界
- 局部处理
- 区域处理
- 全局处理(使用霍夫变换)
- 将边缘像素组合成有意义的边缘或区域边界
局部处理
-
分析每个点$(x,y)$邻域内像素的特点
-
将依据某准则相似的点连接起来
- 基于梯度大小判断相似: $|M(s,t) - M(x,y)| \le E$
- 基于梯度方向判断相似:$|\alpha(s,t) - \alpha(x,y)| \le A$
- 如果大小和方向都相似,则连接$(s,t)$和$(x,y)$
简化算法(计算简单)
- 计算输入图像$f(x,y)$的梯度大小和方向
- 梯度大小$M(x,y)$, 梯度方向$\alpha(x,y)$
- 依据下式产生二值图像
- $g(x,y) = 1$ if $M(x,y) > T_M$ AND $\alpha(x,y) = A \pm T_A $
- $T_M$为阈值、$A$为特定角度、$T_A$为允许的带宽
- 逐行扫描,填充长度不超过$K$的空隙
- 以角度$\theta$ 旋转$g(x,y)$,重复第3步,再反旋转
区域处理
- 前提
- 感兴趣区域的位置已知
- 目标
- 基于区域连接像素,近似区域的边界
- 方法
- 函数近似
- 为已知点拟合一条2维曲线
- 多边形近似
- 实现容易、捕捉基本形状特征、表示简单
- 函数近似
算法设计:
- 前提
- 两个起始点
- 所有的点必须排序
- 顺时针、逆时针
- 判断曲线类型
- 边界线段(开放曲线)
- 存在两个间距较大的连续点(可作为起始点)
- 边界(闭合曲线)
- 连续点之间的距离比较均匀
- 两端的点为起始点
- 连续点之间的距离比较均匀
- 边界线段(开放曲线)
区域处理算法:
- 令$P$ 是一个已排序、不重复的二值图像中的序列。指定两个起始点$A$和$B$。它们是多边形的两个起始顶点。
- 指定一个阈值$T$,以及两个空堆栈"开"(OPEN)和"闭"(CLOSED)。
- 如果$P$中的点对应于一条闭合曲线,则把$B$放到"开"和"闭"中,并把$A$放到"开"中。 如果对应于一条开放曲线,则把$A$放到"开"中,而把$B$放到"闭"。
- 计算从"闭"中最后一个顶点到"开"中最后一个顶点的线的参数。
- 寻找属于序列$P$、且在步骤4中直线的两个顶点之间的点;计算这些点与直线的距离,选择具有最大距离$D_{max}$的点$V_{max}$。
- 如果$D_{max} > T$, 则把$V_{max}$作为一个新顶点放在"开"堆栈的末尾。转到步骤4.
- 否则,从"开"中移除最后一个顶点,并把它作为"闭"的最后一个顶点插入。
- 如果"开"非空,转到步骤4
- 否则,退出。“闭"中的顶点就是拟合$P$中的点的多边形的顶点。
全局处理
- 考虑没有边缘先验知识的情况
- 利用全局性质判断是否为边缘像素
- 指定感兴趣的几何形状
- 判断像素集合是否满足该形状
- 问题:给定$n$个点,寻找共线的像素
- 考虑所有可能的直线$n(n-1)/2$
- 寻找靠近每一条直线的像素集合
- 复杂度$n^2 (n-1)/2$
霍夫变换
- xy-平面
- 直线方程:$y_i = ax_i +b$
- ab-平面
- 参数方程:$b=-ax_i + y_i$
- 每个点对应一条直线
但这样导致$ab$平面无限延伸,我们换一种表示方式
- xy-平面
- 法线方程:$x \cos \theta + y \cos \theta = \rho$
- $\rho \theta-$平面
- 参数方程:$\rho = x \cos \theta + y \sin \theta$
- 每个点对应一条正弦曲线
如何计算交点(近似计算):
- 划分累加单元
- $-90^{\circ} \le \theta \le 90^{\circ}$
- $-D \le \rho \le D$
- $D$是对角长度
- 统计每个单元内曲线的数目
- $(i,j)$位置单元内曲线数目记为$A(i,j)$
- $(i,j)$位置单元对应的参数$(\rho_i, \theta_j)$
- 计算$\rho=x \cos \theta_j + y \sin \theta_j$, 并离散化
将霍夫变换用于边缘连接(可以扩展到直线以外的曲线)
- 生成二值的边缘图像
- 可采用之前介绍的任意算法
- 划分$\rho \theta - $平面的累积单元
- 粒度决定了精度、计算量
- 统计每个累加单元的曲线数量
- 寻找数值高的单元
- 检验数值高累加单元对应的像素
- 将距离小于某阈值的像素连接起来
Ch15. 图像压缩
- $b$和$b'$为两种不同表示方式的比特数
- 用$b$比特表示的相对数据冗余: $R = 1 - \frac{1}{C}$, $C = \frac{b}{b'}$
- 压缩比, $C=10$ 意味着有$90%$ 的冗余
2维灰度矩阵包含三种冗余
- 编码冗余
- 编码:表示信息的符号系统 (字母、比特)
- 码字:符号序列
- 灰度图像的8位编码往往是冗余的
- 空间和时间冗余
- 图像中紧邻点是空间相关的
- 视频中连续帧是时间相关的
- 不相关的信息
- 被视觉系统忽略的信息
- 与图像用途无关的信息
霍夫曼编码
- 单独对信源符号编码
- 霍夫曼编码是最短的编码
- 对于固定的$n$ ,该编码是最优的
- 简化信源
- 对符号的概率进行排序,合并低概率符号
- 重复该过程,直到剩余两个符号
- 对简化后的信息源编码
- 从最小信源开始,返回到原信源
- 为每一个分支分配符号
Ch16. 形态学处理
腐蚀
- 集合$B$对集合$A$的腐蚀(erosion)
- $A \ominus B = {z| (B)_z \subseteq A }$
- $(B)_z$表示把集合$B$平移到坐标$z$
- 通常假设集合$B$为j结构元
- $(B)_z$意味着把$B$的原点平移到$z$
- 等价定义
- $A \ominus B = { z| (B)_z \cap A^c = \emptyset }$
- $A^c$表示集合$A$的补集
- 腐蚀,可以被理解为形态学滤波
膨胀
- 集合$B$对集合$A$的膨胀(dilation)
- $A \oplus B = { z | (\hat{B})_z \cap A \not= \emptyset}$
- $\hat{B}$表示集合$B$的反射
- $(\hat{B})_z$ 表示把集合$\hat{B}$平移到坐标$z$
- 通常假设集合$B$为结构元
- 等价定义
- $A \oplus B = \bigcup\limits_{b \in B} (A)_b$
对偶性
- 公式
- $(A \ominus B)^c = A^c \oplus \hat{B}$
- $(A \oplus B)^c = A^c \ominus \hat{B}$
- 证明
- $(A\ominus B)^c = {z | (B)_z \subseteq A }^c = {z | (B)_z \cap A^c \not= \emptyset }^c = {z | (B)_z \cap A^c \not= \emptyset } = A^c \oplus \hat{B} $
开操作和闭操作
$A \circ B = \bigcup { (B)_z | (B)_z \subseteq A }$
$A \cdot B = {z | (B)_z \cap A \not= \emptyset}$
Ch17. 目标识别
提纲
- 引言
- 模式和模式类
- 基于决策论方法的识别
- 匹配
- 最小距离分类器
- 基于相关的匹配
- 最佳统计分类器
- 神经网络
- 针对两类的感知机
- 多层前馈神经网络
- 匹配
决策论方法
- 决策论方法(decision-theoretic methods)
- $x=(x_1,x_2,…,x_n)^T$表示$n$维的模式向量
- 存在$W$个模式类$w_1, w_2,…,w_W$
- 构造决策函数$d_1(\cdot), d_2(\cdot),…,d_W(\cdot)$
- 如果$ x \in w_i$, 那么 $d_i(x) > d_j(x)$, $j=1,2,…,W; j \not= i$
- $w_i$和$w_j$之间的决策边界
- $d_i(x) = d_j (x) \Leftrightarrow d_i(x) - d_j(x)=0$
- $d_{ij}(x) = d_i(x) - d_j(x) =0$
- $d_{ij}(x)>0$ 则属于$w_i$; 反之,属于$w_j$
最小距离分类器
- 把原型定义为每个类的平均向量
- $m_j = \frac{1}{N_j} \sum\limits_{x_j \in w_j} x_j $, $j=1,…,W$
- $N_j$ 是类别$w_j$包含的模式数量
- 利用欧式距离判断远近
- $D_j(x) = ||x-m_j || $, $j=1,…,W$
- $||a|| = (a^T a)^{1/2}$
- 如果$D_i(x)$是最短距离,那么$x \in w_i$
- 等价计算方式
- $d_j(x) = x^T m_j - \frac{1}{2} m_j^T m_j$ $j=1,2,…,W$
- 如果$d_i(x)$是最大值,那么$x \in w_i$
-
$w_i$ 和$w_j$之间的决策边界
- $d_{ij} = d_i(x) - d_j(x) = x^T(m_i-m_j) - \frac{1}{2} (m_i-m_j)^T (m_i+m_j) =0$
- 连接$m_i$ 和 $m_j$线段的垂直平分线(bisector)
- $n=2$, 对应于直线
- $n=3$, 对应于平面
- $n>3$, 对应于超平面
-
最小距离分类器的适用场景
- 最小距离分类器的适用场景
- 类内之间的分散程度小
-
实际应用中
- 未必满足上述条件
-
解决方案
- 对数据进行预处理
- 特征选择、特征抽取
- 控制数据的产生过程
- 对数据进行预处理
最佳统计分类器
基础知识
- 把属于$w_i$的模式预测为属于$w_j$
- 遭受损失$L_{ij}$
- 模式$x$属于类别$w_i$的概率记为$p(w_i|x)$
- 预测模式$x \in w_j$的平均损失
- 条件平均风险: $r_j(x) = \sum\limits_{k=1}^W L_{kj} p(w_k | x)$
- 贝叶斯公式
- $r_j(x) = \frac{1}{p(x)} \sum\limits_{k=1}^W L_{kj} p(x|w_k) P(w_k) $
- $p(x|w_k)$表示类别的概率密度
- 去掉与类别无关的$1/p(x)$
- $r_j(x) = \sum\limits_{k=1}^W L_{kj} p(x|w_k) P(w_k)$
- 贝叶斯分类器
- 最小化平均损失
- 预测$x \in w_i$ 如果 $r_i(x) < r_j(x)$, $\forall j \not=i$
- 0-1损失函数: $L_{ij} = 1 - \delta_{ij}$
- 预测正确无损失,预测错误损失为1
- $r_j(x) = p(x) - p(x|w_j) P(w_j)$
- 前提条件
- 每个类$w_j$出现的概率$P(w_j)$已知
- 从数据中估计,或者直接令$P(w_j) = 1/W$
- 每个类$w_j$的概率密度$p(x|w_j)$已知
- 从数据中估计高维密度$p(x|w_j)$已知
- 从数据中估计高位密度函数非常困难
- 通常假设密度函数为某种解析形式,然后从数据中估计函数参数
- 每个类$w_j$出现的概率$P(w_j)$已知
针对高斯模式类的贝叶斯分类器
- 假设概率密度$p(x|w_j)$为高斯函数
- 考虑1维空间内的2分类问题
- $n=1$, $W=2$
- 决策函数
- $d_j(x) = p(x|w_j) P(w_j) = \frac{1}{\sqrt{2 \pi} \sigma_j} e^{-\frac{(x-m_j)^2}{2 \sigma_j^2}} P(w_j) , j=1,2$
- 参数为均值$m_1,m_2$, 标准差$\sigma_1, \sigma_2$
- 考虑$n$ 维空间内的$W$分类问题
Ch04
空间相关与卷积 区别 联系 例子
滤波器特点
近邻含义
不用背傅里叶公式 只会被离散版本
选择题
判断题
简答题
计算题