数字图像处理
- 期末考试60分
- 平时成绩40分
- 参考资料 - 冈萨雷斯《数字图像处理》
2018-12-5 21:50:27
参考多来源总结进行修改排版
第一章 绪论
-
数字图像处理的主要内容(基本步骤)
2018-12-5 21:51:06
图像获取、图像滤波与增强、图像复原、彩色图像处理、(小波域多分辨率处理)、压缩、形态学处理、分割、表示与描述、目标识别。
图像获取:利用电磁波的不同波段特点进行成像,并通过某些方式(采样量化)得到数字图像。
图像的滤波增强:在空间域和频域对图像进行处理,利用特殊设计的模板或频域滤波器做图像滤波(提取或强化弱化指定特征),并将结果与原图进行一定增强算法增强原图的特定特征。
图像退化与复原:通过一些方式估计或获取图像的退化模型或函数,进而利用此信息(采用逆滤波等方式)对图像进行复原。
彩色图像处理:将数字图像的概念推广到彩色图像进而处理,符合日常与应用需求。
形态学处理:利用一些算法(腐蚀膨胀、开闭运算)处理图像的边缘或大小等,以及信息的提取。
图像压缩与编码:利用压缩算法对图像做无损信息或有损信息量的压缩与编码,降低图像中的信息冗余,便于传输与储存;
图像分割:提取图像中的边缘信息,对图像进行分割,将不同区域分离(将图像中表达内容的各个元件拆分成相互独立且完整的部分)。
-
根据成像信息源,数字图像处理的主要应用有哪些(电磁波不同波段成像的特点与应用)
2018-12-5 22:29:39
修正数字图像有亮度高,可重复性好,通用性、灵活性强等优点。
主要应用领域很多,例如医学、工业、天文观测、生物学、雷达等。以下是按波长列举的成像方式简介。
-
伽马射线成像
-
特点:穿透性强、能量高
-
应用:核医学、天文观测。医学中人注射(或其他方式)放射性同位素后,在其衰变过程中就会产生正电子,正负电子湮灭会产生\(\gamma\)射线,以此可以做伽马射线成像。可用于判断骨骼病变位置,感染或肿瘤等。另有正电子放射断层PET、宇宙观测等。
-
-
X射线成像
- 特点:波长短,能量高,有较强穿透力
- 应用:医学诊断、工业以及其他领域。主要产生方式是阴极射线加速撞击原子核,产生X射线辐射。X射线穿透需要成像的物体后发生衰减,落在底片上之后感光成像。工业应用有电路缺陷检测、金属元件探伤、骨骼透视成像、血管造影等。
-
紫外波段成像
- 特点:容易引发荧光效应。
- 应用:紫外光谱应用较多,平板印刷、工业检测、显微方法、天文观测、生物成像等。紫外光与核外电子碰撞导致电子跃迁,电子跃迁回低能级时会发出可见光。常见应用有紫外荧光显微方法以及紫外成像的天文摄影等。
-
可见光以及红外波段成像
- 特点:可见光就是可以看见。红外线常携带内能信息,而且容易穿透云雾等。
- 应用:天文、遥感等领域应用。制药工艺中常会采用可见光的显微技术观测,而遥感中常用红外。还有天气观测等其他应用。
-
微波波段成像
- 特点:不受时间空间限制,不受气候条件与光照条件影响。
- 应用:雷达成像。一些波段的微波容易穿透云层,从而达到探测与成像等效果。
-
无线电波段成像
- 特点:
- 应用:医学与天文学。核磁共振成像(MRI)中常用此类技术。
-
其他成像
声音成像(B超、地质探测、海洋探测),电子成像(电子显微镜)。
-
第二章 数字图像基础
2018-12-5 23:02:07
订正开始
-
图象数字化包括哪两个过程?数字化参数对图像质量有何影响?
采样与量化。
-
采样是对模拟图像进行坐标的离散化过程。
-
量化是对采样后图像的幅值的离散化过程。(会产生量化噪声、均匀分布)
影响:涉及空间分辨率与灰度分辨率的问题。参数化越细致,则分辨率越高,相应的存储需求也越大,传输也变得困难;空间分辨率越高,数字图像越清晰;灰度分辨率越高,图像色阶越多,灰度精度变高,图像更为细腻。
-
-
人眼中两类光感受细胞锥状体细胞与杆状体细胞的主要功能与特点?
视锥细胞和视杆细胞都是视网膜上的光感受器,其中
- 视锥细胞在每只眼中约有600万-700万个,主要位于视野的中央凹位置,对颜色高度敏感,可以充分分辨图像的细节,眼球的转动不会对视锥细胞的位置产生影响;每个锥状体细胞都会连接自己的神经末梢,主要负责光亮条件下人的视觉活动,称为亮视觉。
- 视杆细胞大约有7500万到15000万个,主要用于给出视野内的总体图像,但是不感知色彩,对低照度敏感,分布范围较大,但是多个细胞共用一个神经末梢,导致其分辨能力较差。
-
白天进入一个黑暗剧场的时候,想要看清并找到空座位时眼睛需要适应一段时间,试图描述发生这种现象的视觉原理。
亮度适应现象
人眼的可接受光强的动态范围极大,大约有\(10^{10}\)量级(最低暗阈值到瞬时强闪光),亮视觉中人眼适应范围约为\(10^6\)。主观亮度是进入人眼的光强的对数函数。但是视觉系统并不在所有范围内工作,确切的说人眼是通过改变整个灵敏度来完成较大亮度适应性的(亮度适应现象)。因为眼睛可以同时分辨的亮度范围相比总体范围来说很小。通过改变视觉系统灵敏度,才能切换视觉范围,但是这样的调整需要一定时间。当立即进入一个黑暗的剧场时,剧场内的亮度在人眼可以分辨的范围之外,因此人眼需要经过灵敏度的切换,即需要适应时间。
-
图像的形成模型;同态滤波
-
人眼中图像形成模型:人眼改变晶状体形状,将景物聚焦到视网膜上,并将该结果经视网膜中的视觉细胞感受与转化为电脉冲送入脑中,大脑经过解码最终获得图像。人眼中图像的生成主要依赖于人眼的类凸透镜成像和人眼对可见光的反应。
以下内容主要介绍另一种常见的形成模型
用函数\(f(x,y)\)来表示图像,其中\(f\)是正标量
0-255
。一般的其物理意义由像源决定,\(f\)可以由两个分量来表征 -
入射分量 - 入射到被观察场景的光源照射总量
-
反射分量 - 场景中物体所反射的光照总量
单位都是流明(照度)。我们将上述结果表示如下:
\[f(x,y)=i(x,y)r(x,y)\]入射分量可以是0到无穷之间变化,反射分量是一个相对数值,在0到1之间变化。
其中照射分量描述景物的照度,变化较缓慢,处于低频成分;
反射分量用于描述景物的细节,变化较快,处于高频成分区。
同态滤波方法
因为上述模型是乘性的,因此不能直接使用傅里叶变换对其进行分别修改,而可以选择使用对数先将乘性量分离,然后处理加性量。
为了防止取值到log(0),常会采用加一取对数的方法
对数后的结果取傅里叶变换,得到
\[Z(u,v)=F_i(u,v)+F_r(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)}=i_{filtered}(x,y)+r_{filtered}(x,y)\]如果前面做了+1处理,这里要记得-1
而对于滤波器部分,如果我们想要增强暗区域的细节,则可以认为是光照不均匀造成的,为减少光照影响,就可以增强图像的高频成分,设计高通滤波器。
上述模型还可以应用在穿透物体为主要原理的成像系统中,将反射系数换成投射系数即可
-
-
马赫带现象、对比度、空间、灰度分辨率
-
马赫带现象:奥地利物理学家马赫发现的视觉效应,观察两块亮度不同的区域时,边界处亮度对比加强,使轮廓表现得特别明显。也被称为“过冲”现象。
-
对比度是一幅图像中明暗区域最亮的白和最暗的黑之间的比值。实际上是一种统计概念,高对比度图像易于观察细节,低对比度则较为困难。
-
空间分辨率是图像中可分辨的最小细节度量。数量上有很多方法来说明,例如dpi。
-
灰度分辨率,灰度级中可分辨的最小变化。一般是2的整数次幂。通用的是8bit,但是在一些特殊用途中也会出现16bit。
-
-
为什么大口径镜头的照相机成像清晰?(其他工艺水平相同的情况下)
镜头大了,衍射影响就小了。
外界的每一个点在底片上形成的是一个衍射圆斑(艾里斑)。衍射形成的第一暗环的衍射方向角为
\[\theta=\frac{1.22·\lambda}{d_{len}}\]所以对于一个固定大小的镜头,不论把成像系统设计的多么完美无缺,相差消除的多么小,都会有一个理论上的最大清晰度(圆斑越小,图像越清晰),而由公式知道,这个清晰度与镜头直径成反比。
所以,要增大镜头直径。 这是增大镜头口径最重要的原因之一。当然,另一个原因是增加透光的能量。
CCD传感器阵列中,每个传感器的响应正比于投射到传感器表面的总能量,提高口径就可以增大单位时间内投射到表面的能量,从而降低噪声。
-
4邻域、8邻域、视觉感知要素、人眼对亮度的适应范围;视觉错觉;电磁波不同波段成像特点
一个点和上下左右四个点被称为4邻域\(N_4(p)\)。
一个点和四个角的四个相邻点被称为8邻域\(N_8(p)\)。
四个角的邻域被称为对角邻域\(N_D(p)\)。
视觉感知要素一般指人眼结构、人眼生成图像、亮度的适应和辨别等。
第三章 空间域图像增强
2018-12-6 16:43:51
最后编辑
-
空间域滤波与频率域滤波的特点分别为什么?常用的滤波器有哪些?
空间域滤波是对图像本身的像素进行处理,频率域滤波是对图像的傅里叶变换做处理。
所有的变换域处理都首先将图像变换到另一个域中,然后才进行处理,并通过反变换将结果返回空间域。
-
空间域滤波通常根据某一像素与其邻域的关系确定处理后像素的灰度。常见滤波器有微分滤波器、平滑滤波器、统计平均滤波器等。空间域滤波后的图像,其每一点的像素值不仅与原图像的该点有关,还和其邻域的像素有关(因为其处理方式是通过一个n*m的窗进行滑动)。
- 相关是直接乘、卷积是翻转180度乘
-
频率域滤波特点是将图像变换到频率域后再处理,处理后再逆变回空间域。常用滤波器为理想x通滤波器,巴特沃斯,高斯等。
-
-
基本的灰度变换函数
-
反转:曲线是一条向下的斜线,作用是将灰度级做反相,处理方程为\(s=L-1-r\)。课本举例为反相分析人体组织,结果更易分辨。
-
对数:处理方程为\(s=clog(1+r)\),将输入中范围较窄的低灰度值映射到较宽的范围内,而将较宽的高灰度值映射到较窄的范围内。具有该类型特征的曲线都可以叫对数型变换(例如n次根)。课本举例为丰富傅里叶变换结果的高频频谱的细节。
-
幂次(伽马):\(s=cr^\gamma\)变换。有时也会做一个小的偏移。实际上的效果也是将窄带到宽带映射或从宽带到窄带映射。由于获取图像的设备(CRT、扫描仪、放射仪、航空图像等)往往是幂律响应,因此往往需要伽马校正,做一个与设备相反的响应的变换就能获取真正的数字图像。
-
对比度拉伸函数:一个逼近阈值函数的S型函数,可以将低输入压缩到很低输出,将高输入拉伸到很高输出。分段线性变换和非线性函数都可以,例如
Sigmoid
-
阈值:就是一个竖线。处理出来就是二值图了。
-
分段线性变换:很多用法,比如对比度拉伸、灰度级分层(一般是凸字形的函数或类似凸字形函数)比特平面分层等。
-
-
灰度直方图是什么,有哪些应用
常用直方图来描述灰度分布,即各个灰度值出现的统计信息(归一化直方图的所有分量之和一般为1,实际上就是个灰度的概率分布),不包含位置信息。
对直方图的处理常用与图像增强等领域。
用途描述如下
- 评价成像条件:根据图像灰度直方图可以分析图像在成像过程中(或数字化过程中)是否合理利用了灰度的动态范围
- 图像增强处理:根据直方图应用映射函数使处理后的图像能够充分利用灰度的动态范围
- 图像分割:根据图像的灰度直方图,将像素分割成不同的类别,实现不同景物的提取。
- 图像压缩:利用其统计信息,可以进行压缩、编码(例如霍夫曼编码)
- 其他处理任务,联合直方图(概率):条件熵、联合熵、互信息、广义熵等进行图像的复原、匹配以及目标识别。
- 直方图均衡化
- 这个考试会考,下面会说明
- 直方图匹配(规定化)
- 均衡化可以自己确定处理函数,而匹配(规定化)是要求处理后的直方图能有特定的形状。该处理方法似乎不要求掌握。
- 局部直方图处理
- 相比以上全局方法,该方法主要适用于图像的小区域细节。小区域细节区域中的影响在直方图中的体现很小,全局计算时可能被忽略,解决方法就是以图像的每个像素的邻域中的灰度分布为基础设计变换函数。
- 直方图均衡化
-
灰度直方图能获取哪些信息?
(归一化的)灰度直方图提供的信息是每个灰度级在图像中出现的概率。根据图形的直方图分布可以了解到这张图片的灰度动态范围,亮度分布,对比度等。
(宏观统计信息,对比度、动态范围、敏感程度、细节是否明显等)
-
直方图均衡化基本步骤
直方图均衡化利用概率分布的变换计算。首先验证连续灰度分布时的变换法。
对于一个变换函数\(T(r)\),其变换结果为\(s=T(r)\)
其中我们说
r
是变换前的灰度,s
是变换结果。我们假定这个变换是严格单调的,并且输入输出的动态范围都是\([0,L-1]\),防止丢失动态范围。该变换的反变换定义为\(r=T^{-1}(s)\),根据我们的假设,这个肯定也是单调增加的,且不丢失动态范围。
我们知道灰度直方图实际上是灰度分布的概率分布函数。因此变换前后的概率分布满足
\[p_s(s)=p_r(r)\mid\frac{dr}{ds}\mid\]根据我们学习过的知识,可以构造一个变换函数使输出概率密度函数的形式满足任意形式。此处的变换为
\[s=T(r)=(L-1)\int_0^r p_r(x)dx\]将该变换带入上一个方程后得到
\[p_s(s)=p_r(r)\mid\frac{dr}{ds}\mid=\frac{1}{L-1}\]则变换时只需要应用上述变换的表达式即可。但是数字图像中都是离散值,因此积分变换改为求和变换
首先计算各灰度级的概率,直方图里面也能直接获取。
\[p_r(r_k)=\frac{n_k}{MN}\]变换可以写作
\[s_k=T(r_k)=(L-1)\sum\limits_{j=0}^kp_r(r_j)\]应用此变换就能得到直方图均衡化的图像。上面的k表示变换后的第k个灰度级输出,这个本质上是一个变换函数,还需要将直方图应用这个变换函数,得到变换结果。
注意最后要量化到合适的位置。直方图均衡化的时候会存在一定的简并性,可以通过增加灰度比特数来解决。
-
给定指定直方图,计算均衡化后结果(灰度分布)
见课本
P76-P77
-
利用平滑滤波的时候虽然能抑制噪声但是也模糊了细节,有哪些方法可以改善(减小模糊程度)?
均值滤波过程中对所有的点都是同等对待,因此可能会导致图像变得模糊,在将噪声平均化的过程中,景物的边界点也与周围发生了均匀化。改善效果可以采用加权平均的方法来构造滤波器。
除了加权以外,还可以选择梯度增强(锐化)、统计排序滤波器等。
-
中值滤波
均值滤波器导致图像模糊是不能被完全消除的,加权改善效果也是有限的。因此设计中值滤波器,对于椒盐噪声来说,都是区域内最亮或最暗的点,因此可以取整个邻域内灰度级处于中间级的像素的值来代替这个位置的值,这样就可以去除椒盐噪声,且不会产生模糊。
这样的滤波器叫中值滤波器,属于统计排序滤波器。实际上还有很多不同的统计排序滤波器。
-
图像锐化
锐化的目的主要是突出图像中的细节,边缘或轮廓,因为边缘和轮廓都位于灰度突变的地方,所以锐化算法的实现是基于微分的。
但是图像的微分可以突出其他突变,例如噪声,还会削减灰度变化缓慢的区域(低频区域)。
最简单的锐化空间滤波器是基于掩膜操作的高通空间滤波器,一阶和二阶微分算子。
-
一阶微分(及其算子),二阶微分(及其算子)
一阶微分的表达式是
\[\frac{\partial f}{\partial x}=f(x+1)-f(x)\]可以认为算子是\((-1,1)\)
无视方向的条件
科学一些的写法是
\[\triangledown f = grad(f)=\left[\begin{matrix} g_x\\ g_y \end{matrix}\right]=\left[\begin{matrix} \frac{\partial f}{\partial x}\\ \frac{\partial f}{\partial y} \end{matrix}\right]\]一阶微分的处理往往是利用梯度的幅值进行处理的,但是对幅值的应用方式有所不同,得到的最终算子也不尽相同。例如交叉差分等。具体算子如下
\[Roberts: \left[ \begin{matrix}-1 & 0 \\ 0 & 1 \end{matrix} \right],\left[ \begin{matrix}0 & -1 \\ 1 & 0 \end{matrix} \right]\] \[Sobel: \left[ \begin{matrix}-1 & -2 &-1 \\ 0 & 0 & 0\\ 1 & 2 & 1 \end{matrix} \right],\left[ \begin{matrix}-1 & 0 & 1 \\ -2 & 0 & 2\\ -1 & 0 & 1 \end{matrix} \right]\] \[Prewitt: \left[ \begin{matrix}-1 & -1 &-1 \\ 0 & 0 & 0\\ 1 & 1 & 1 \end{matrix} \right],\left[ \begin{matrix}-1 & 0 & 1 \\ -1 & 0 & 1\\ -1 & 0 & 1 \end{matrix} \right]\]以上
二阶微分的表达式是
\[\frac{\partial^2 f}{\partial x^2}=f(x+1)+f(x-1)-2f(x)\]同理可以认为算子是\((1,-2,1)\)
- 一阶微分通常会产生较宽的边缘
- 二阶微分对细节有较强的响应,例如细线、孤立点、噪声等
- 一阶微分对灰度阶梯有较强的响应
- 二阶微分对灰度阶梯变化产生双响应
- 二阶微分算子在灰度值变化相似的时候,对线的响应比阶梯强,对点的响应比对线强。总之变化剧烈性而言点>线>阶梯
- 总结起来二阶微分增强细节的能力比一阶微分好。
如果要在多方向满足这个条件,就要引入拉普拉斯算子。
各向同性的算子是拉普拉斯算子,其表达式为
\[\triangledown^2 f=\frac{\partial^2 f}{\partial x^2}+\frac{\partial^2 f}{\partial y^2}=\left[ \begin{matrix}0 & 1 & 0\\ 1 & -4 & 1\\ 0 & 1 & 0\end{matrix} \right]\]
可以证明,这个算子是\(-\triangledown^2 f\)
常用的拉普拉斯算子还有其他形式,例如45度旋转不变性的
\[\left[ \begin{matrix}1 & 1 & 1\\ 1 & -8 & 1\\ 1 & 1 & 1\end{matrix} \right]\]这个算子实际上是将对角加入了运算,即对于原来的拉普拉斯算子叠加了对角型算子
\[\left[ \begin{matrix}1 & 0 & 1\\ 0 & -4 & 0\\ 1 & 0 & 1\end{matrix} \right]+\left[ \begin{matrix}0 & 1 & 0\\ 1 & -4 & 1\\ 0 & 1 & 0\end{matrix} \right]=\left[ \begin{matrix}1 & 1 & 1\\ 1 & -8 & 1\\ 1 & 1 & 1\end{matrix} \right]\]两个90度不变性的算子叠加得到一个45度不变性的结果。
有时候也会采用相反的算子。
拉普拉斯算子常用与图像的锐化,这也正是微分算子常用的地方。印刷业中常用的图像锐化处理过程是从原图中减掉一张平滑的图像得到模板,将该模板扩大k倍后叠加到原图像中就完成了锐化。实际上我们得到的模板就是图像中的边缘。
第四章 频率域滤波
2018-12-6 20:39:58
-
图像二维傅里叶变换公式,分析傅里叶变换后的频率分量与空间域特征的联系。
“周期信号都可以表示为谐波关系的正弦信号加权和”
“非周期信号都可以用正弦信号的加权积分来表示”
图像二维傅里叶变换公式为
正变换
\[F(u,v)=\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}f(x,y)e^{-j2\pi (ux+vy)}dxdy\]逆变换
\[f(x,y)=\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}{F}(u,v)e^{j2\pi (ux+vy)}dudv\]对于数字图像而言,采用离散变换的形式
\[F(u,v)=\sum\limits_{x=0}^{M-1}\sum\limits_{y=0}^{N-1}f(x,y)e^{-j2\pi (ux/M+vy/N)}\] \[f(x,y)=\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)}\]这里很容易忘记分母desu,还有逆变换的系数
变换后的频率分量与空间域的变化快慢有联系。例如点、线、边缘等变化较快的细节都属于高频分量,而变化较缓慢的区域对应于低频分量。一般的数字图像低频信息都比较多。
一般平行于一个方向上的信边缘,频谱上都处于该方向的垂直方向。
-
用傅里叶变换的性质证明图像频域中心化处理的表达式
二维傅里叶变换及其反变换在频域中沿\(u\)和\(v\)方向是无穷周期变化的,即有
\[F(u,v)=F(u+k_1M,v+k_2N)\]和
\[f(x,y)=f(x+k_1M,y)=f(x,y+k_2N)=f(x+k_1M,y+k_2N)\]其中\(k_1,k_2\)都是整数。
周期性在基于DFT的算法的实现上是重要的特性。利用该特性我们常做的操作就是频域中心化处理。由于傅里叶变换存在变换关系\(f(x)e^{j2\pi(u_0x/M)} \Leftrightarrow F(u-u_0)\)
带入特殊值(取\(u_0=M/2\)),该关系还可以写作
\[f(x)(-1)^x \Leftrightarrow F(u-M/2)\]在二维变换中同理可得
\[f(x,y)(-1)^{x+y} \Leftrightarrow F(u-M/2,v-N/2)\]这样的操作可以将图像的低频分量集中在图像中。一张图像中的能量主要集中在低频区,这样处理可以便于观察与处理。
-
图像频率域滤波的基本步骤
- 对图像进行补零操作,得到\(2M×2N\)的填充图像\(f_p(x,y)\),避免缠绕(这里是啥意思我也没搞懂,好像是在0交叉位置通过填充来避免振铃出现)
- 中心化变换,和前面说过的一样,图像乘\((-1)^{x+y}\)
- 对图像做DFT将得到\(F(u,v)\),对乘因子后的图像做DFT将得到中心化的频谱\(F(u-M/2,v-N/2)\)
- 用滤波器\(H(u,v)\)与变换后的结果相乘将得到\(G(u,v)\)
- 计算结果的IDFT,得到\(\mathfrak F^{-1}[G(u,v)]\)
- 将上述结果取实部,得到\(Re\{ \mathfrak F^{-1}[\mathfrak G(u,v)] \}\)
- 再将结果乘\((-1)^{x+y}\),获得变换后的结果\(g_p(x,y)\)。
- 将结果从左上截取\(M \times N\)区域,获取结果\(g(x,y)\)。
-
写出三种频率域平滑(低通)滤波器,并分析各自的特点、截止频率的影响
- 理想低通滤波器。以原点为中心,以\(D_0\)为半径的圆内,无衰减地通过所有频率分量,而在其之外完全衰减所有频率分量。频域表达式这里不再给出。这样的锐截止滤波器物理不可实现。由于频域锐截止,因此空间域是sinc的形状,在应用平滑滤波时相当于卷积sinc函数,因此会有较为明显的振铃。
- 巴特沃斯型,频域函数的形式为\(H(u,v)=\frac{1}{1+\beta \left[ \frac{D(u,v)}{D_0} \right]^{2n}}\),其中\(\beta\)是一个系数,其取值用于定义滤波器在截止频率处的增益,一般就取1,此时认为50%衰减处为截止频率。巴特沃斯型在截止时不会出现明显的急剧不连续性,也正是由于这种平滑过渡,处理时不会出现明显振铃现象。当然随着阶数升高,巴特沃斯型也会出现一定的振铃,当阶数足够高的时候,可以认为BLPF会逼近ILPF。随着截止频率的降低,图像变得更加模糊。
-
高斯函数的滤波器 \(H(u,v)=e^{-D^2(u,v)/2\sigma^2}\),当取\(\sigma = D_0\)时,j截止频率\(D_0\)处滤波器下降到最大值的\(e^{-0.5}\)。高斯滤波是没有任何振铃的(牛逼!!!!【破音),常用与数据的处理,例如将断裂文字连接、人皮肤的表面磨皮、卫星图像模糊细节减少特征简化图像等。
一般认为,截止频率越高图像越清晰,且振铃(如果有)越不明显。
-
写出三种频率域高通滤波器,并分析各自的特点
- 理想高通滤波器,和理想低通的定义恰好相反,理想高通滤波器在截止频率以外全通,但在截止频率内表现为锐截止,全不通。一般采用分段形式进行描述。同样的物理不可实现。理想高通一样会产生振铃现象,其原因和理想低通相同。
- 巴特沃斯型高通,\(H(u,v)=\frac{1}{1+\left[ \frac{D_0}{D(u,v)} \right]^{2n}}\),从表达式来看就是把低通形式反过来写了而已。实际使用中,巴特沃斯型要更加平滑,低阶时不易产生振铃,高阶逼近理想滤波的形式。
- 高斯型高通,\(H(u,v)=1-e^{-D^2(u,v)/2D_0^2}\),也是将高斯型表达式反过来写。高斯型的边缘最为平滑,即使对微小物体和细线的处理也是平滑的,一定不会出现振铃,一般也取标准差为截止频率。
-
用傅里叶变换的性质证明空间锐化滤波器拉普拉斯算子在频域是高通滤波器
拉普拉斯算子的空间域表示形式为
\[\triangledown^2 f(x,y)=\frac{\partial^2 f}{\partial x^2}+\frac{\partial^2 f}{\partial y^2}\]傅里叶变换中存在一个变换对:
\[\frac{\partial^n f}{\partial x^n}=(j2\pi u)^nF(u)\]利用傅里叶变换法则在二维推广得到
\[\mathfrak F\left[ \frac{\partial^2 f}{\partial x^2}+\frac{\partial^2 f}{\partial y^2} \right]=-4\pi^2 (u^2+v^2)F(u,v)\]可以看出
\[\triangledown^2 f(x,y) \to -4\pi^2 (u^2+v^2)F(u,v)\]则算子可以描述为
\[H(u,v)=-4\pi^2 (u^2+v^2)F(u,v)\]这是一个典型的调和函数表达式,进行绘制比较容易发现是高通形式。将该频域形式进行傅里叶反变换,得到算子的空间域形式,对空间域形式进行简单的近似将得到如下算子
\[\left[ \begin{matrix}0 & 1 & 0\\ 1 & -4 & 1\\ 0 & 1 & 0\end{matrix} \right]\]该算子为微分算子,用于锐化增强细节,是高通的特点。至此显然可以说,拉普拉斯算子是一个高通算子。
-
同态滤波过程、低通滤波器的目的是什么
同态滤波过程前面已经说过了,但是不怕麻烦的我决定再说一遍。同态滤波的目的在于消除不均匀照度影响,增强图像细节。
物理过程产生的图像,其灰度值应正比于物理源的辐射能量,而辐射能量由照射分量和反射分量合成,即前面说的
\[f(x,y)=i(x,y)r(x,y)\]单位是流明(照度)。一般来说,反射分量表示图像的内容,随图像的细节不同在空间上快速变化,照射分量一般在空间是缓慢变化的,因此认为照射分量频谱落在低频区域,而反射分量的频谱集中在高频区域。但是乘性量是傅里叶变换不可分的,因此不能直接处理。处理乘性变化的方式为
\[ln(i(x,y)r(x,y))=ln(i(x,y))+ln(r(x,y))\]分离了乘性量后就可以进行分别处理了。设计一个频率域滤波器,将结果与对数形式相乘并做反变换,然后用exp恢复原有scale就可以了。一般的,为了达到同态滤波的目的,往往采用高频增强滤波器,能够减少低频(照度),增强高频(反射),压缩动态范围,增强对比度。
同态滤波的低通滤波器主要用来抑制反射分量,模糊细节。
-
给定模板计算卷积
空间域卷积就加权乘积就完事了,如果需要边框补充就补充,注意看条件(例如题目说“利用边缘复制方法”)。
第五章 图像的复原与重建
-
写出图像在空间域和频率域的退化数学模型表达形式,并分析退化的原因
图像退化是指由于成像系统受到各种因素的影响,在获取和传输的过程中图像降低的现象,其数学模型表达形式为
\[g(x,y)=h(x,y)* f(x,y)+\eta(x,y)\] \[G(u,v)=H(u,v)F(u,v)+N(u,v)\]即原图像经过退化函数后叠加一定的噪声,这两个公式是图像复原大部分内容的基础。
而复原过程就是使用一个复原滤波器使得图像在某种判定标准下达到最优估计。
一般来说退化原因有
-
成像系统的散焦
-
成像设备与物体间的相对运动(飞行器拍摄、摄像车、运动机械臂,导轨,手抖动等)
-
成像器材的固有缺陷(加工精度、边缘部分畸变)
-
外界环境——噪声、干扰(大气湍流对航空卫星测控遥感等成像的影响)
从另一角度来分析,
-
获取过程:由于光学成像系统的像差、衍射、非线性畸变、散焦、感光元器件的非线性、成像过程的相对运动、大气湍流、环境随机噪声等原因导致图像质量下降。
-
传输过程:由于传输信道干扰而造成图像质量下降。
图像的复原一般就用于修复这类问题。
-
-
带噪图像空间域复原方法:均值滤波、统计排序滤波
噪声来源是采集过程和传输过程,成像过程、数字化过程、信道干扰等。为简化问题,假设噪声与空间和图像都无关。仅仅由于噪声导致图像退化时,退化方程简化为
\[g(x,y)=f(x,y)+\eta(x,y)\] \[G(u,v)=F(u,v)+N(u,v)\]由于噪声种类很多,来源不定,所以不能直接采用减掉噪声的方法(以高斯噪声为例,减掉一个随机高斯噪声相当于又加了一个一样的高斯噪声。)
一般方法是空间域滤波,常用均值滤波器、顺序统计滤波器和自适应滤波器等。
均值滤波器
-
算术平均滤波器,\(\widehat{f}(x,y)=\frac{1}{mn}\sum\limits_{s,t}g(s,t)\),滤除噪声的同时会导致图像的模糊。
-
几何平均滤波器,\(\widehat{f}(x,y)=\left[ \prod\limits _{s,t}g(s,t)\right]^\frac{1}{mn}\),平滑程度与算术平均相当,但是可以保留更多细节(几何平均算出来的点可能比实际原数值大,因此说保留更多细节),对黑色物体有扩大作用(邻域内出现一个0就会导致该像素点变成0)
-
谐波平均滤波器,\(\widehat{f}(x,y)=\frac{mn}{\sum\limits_{s,t}\frac{1}{g(s,t)}}\),对盐粒噪声效果要好,不适应于胡椒噪声,对高斯噪声有比较好的效果。
-
逆谐波平均滤波器,\(\widehat{f}(x,y)=\frac{\sum\limits_{s,t}g(s,t)^{Q+1}}{\sum\limits_{s,t}g(s,t)^Q}\),适用于两种噪声,但是不能同时使用。Q>0时用于消除胡椒噪声,Q<0时用于消除盐粒噪声,Q=0时是算术平均滤波器,Q=1时为谐波平均滤波器。
统计排序滤波器
-
中值滤波器:\(\widehat{f}(x,y)=median\{g(s,t)\}\),对单极噪声以及双极脉冲噪声非常有效。
-
最大值滤波器:\(\widehat{f}(x,y)=max\{g(s,t)\}\),用于过滤胡椒噪声,因为选用的是邻域最亮点。
-
最小值滤波器:\(\widehat{f}(x,y)=min\{g(s,t)\}\),用于过滤盐粒噪声,原因同理。
-
中点滤波器:\(\widehat{f}(x,y)=\frac{1}{2}\left[max\{g(s,t)\}+min\{g(s,t)\}\right]\),用于过滤高斯和均匀随机噪声
-
修正的\(\alpha\)均值滤波器:\(\widehat{f}(x,y)=\frac{1}{mn-d}\sum\limits_{s,t}g_d(s,t)\),其中\(g_d\)为去除最高灰度值的\(d/2\)个点以及最低灰度值的\(d/2\)点后得到的剩余像素。对剩余像素做平均将得到适应多种噪声的滤波器。d=0时就是算术平均,而d=mn-1时就是中值滤波器,d去其他值适用于包含多种噪声的环境,例如高斯混合椒盐(怎么感觉还挺香的)。
自适应滤波器
处理基于\(m\times n\)的局部窗口的区域内图像的统计特性,相比其他滤波器可以达到更优效果,但是算法更加复杂。
\[\widehat{f}(x,y)=g(x,y)-\frac{\sigma_\eta^2}{\sigma_L^2}[g(x,y)-m_L]\]其中\(\sigma_\eta^2\)是噪声方差,\(\sigma_L^2\)是局部方差,\(m_L\)是局部算术平均值。
-
如果噪声方差为0,则保留原灰度值不作处理;
-
如果噪声方差小于局部方差,可以说是局部方差与噪声方差高度相关,则返回一个\(g(x,y)\)的近似值,是\(g(x,y)\)与\(m_L\)的加权。
-
如果噪声方差与局部方差相等,则返回均值以降低局部噪声。
但是这里的噪声方差是需要预先知道或估计的。自适应法的效果优于算术法、几何均值法,保留细节更好,但代价是复杂性高,实时性差,平滑作用更强。
上述滤波器是自适应局部降噪滤波器,实际应用中还有自适应的中值滤波器
相比传统中值滤波器只能处理空间密度不大的冲激噪声,而自适应中值滤波可以处理更大概率的冲激噪声。可以在平滑非冲激噪声(例如高斯)时保留更多细节。但主要目的仍是去除椒盐噪声、平滑其他非冲激噪声并减少物体边界细化或粗化的失真。步骤如下
A:找到一个非脉冲中值
\(A_1=z_{med}-z_{min}\),\(A_2=z_{med}-z_{max}\)。如果前者为正,后者为负,则认为中值不是脉冲,转到B,否则加大窗口尺寸重复A操作,直到达到最大允许窗口尺寸。此时直接输出\(z_{xy}\)(书上写的\(z_{med}\))。
B:判断中心像素是否为脉冲
\(B_1=z_{xy}-z_{min}\),\(B_2=z_{xy}-z_{max}\)。如果前者为正后者为负,认为中心像素不是脉冲,则输出\(z_{xy}\);否则该点是脉冲,输出\(z_{med}\),因为A中已经判断了\(z_{med}\)不是脉冲。
-
-
自适应滤波器为什么有更好的处理效果?
因为自适应滤波器处理时会基于\(m\times n\)的局部窗口区域内图像的统计特性进行处理,考虑到了像素之间的相关性,而其他滤波器不会考虑局部特性。
代价是复杂度提高。
另外目前为止讨论的退化都还是原图像叠加噪声而已。
-
如何去除图像中的周期噪声?带阻、陷波、最佳陷波
用于复原的频率域滤波器有带阻、带通、陷波、最佳陷波。
-
带阻滤波器
一般来说,用于选频阻止的带阻滤波器,除去周期噪声时倾向于向选择阻带较窄的滤波器(如高斯),这样就可以保持图像的更多的细节。
- 理想带阻,就很简单的阻止一定频段的频率分量,由于是理想的,因此截止频率处都是锐截止,在通带中全通,阻带中全阻。可以除去一定频率全方向的周期噪声。但是有可能因此影响到该频段的其他内容。
- 巴特沃斯带阻,表达式为\(H(u,v)=\frac{1}{1+\left[ \frac{D(u,v)W}{D^2(u,v)-D^2_0} \right]^{2}}\)。
- 高斯带阻,表达式为\(H(u,v)=1-e^{-\frac{1}{2}\left[\frac{D^2(u,v)-D^2_0}{D(u,v)W}\right]^2}\)。
-
带通滤波器,其实就是\(H_{bp}=1-H_{br}\)。
-
陷波滤波器,事先选定了频谱中的频率中心,因此阻带(或通带)很小,选频能力很强,一般说Q值较高。由于傅里叶变换是对称的,因此陷波滤波器都是以对称点为单位出现的(除了原点)。当然数量就可以自己选定了。
-
最佳陷波滤波器。当干扰较多的时候就不适合使用陷波滤波器了,因为干扰过多就容易消除太多的图像信息,另外干扰成分通常不是单频率脉冲,而是携带干扰模式信息的宽边缘,我们将复原估计值的局部方差最小化时,认为方案是最佳的。
-
提取干扰模式的主频率成分,可以在每一个尖峰位置放置一个陷波滤波器。则我们可以获取空间域表达式为
\[\eta(x,y)=\mathfrak F^{-1}\{ H(u,v)G(u,v) \}\]仍然假设是加性噪声,这时候我们从原图像中减掉噪声就可以达到目的,即
\[\widehat f(x,y)=g(x,y)-w(x,y)\eta(x,y)\]现在要优化\(w(x,y)\)使结果达到最优。一种优化方式是选取一个使\(\widehat f\)在指定邻域中的方差最小。
-
局部方差估计
\[\sigma^2(x,y)=\frac{1}{(2a+1)(2b+1)}\sum\limits_{i=-a}^{a}\sum\limits_{j=-b}^{b}\left[ \widehat f(x+i,y+j)-\overline {\widehat{f}}(x,y) \right]^2\]其中平均值表达式为
\[\overline {\widehat{f}}(x,y) =\frac{1}{(2a+1)(2b+1)}\sum\limits_{i=-a}^{a}\sum\limits_{j=-b}^{b} \widehat f(x+i,y+j)\]将上述的两个式子联立可以得到
\[\sigma^2(x,y) =\frac{1}{(2a+1)(2b+1)}\sum\limits_{i=-a}^{a}\sum\limits_{j=-b}^{b}\left[g(x+i,y+j)- \\ w(x+i,y+j)\eta(x+i,y+j)-\left[\overline {g}(x,y) - \overline{w(x,y)\eta(x,y)}\right] \right]^2\]考虑到\(w(x,y)\)在邻域中基本不变,则有
\[\overline{w(x,y)\eta(x,y)}=w(x,y)\overline{\eta}(x,y)\]带回原式求解最小化局部方差时得到
\[\frac{\partial \sigma^2(x,y)}{\partial w(x,y)}=0\]结果得到
\[w(x,y)=\frac{\overline{g(x,y)\eta (x,y)}-\overline{g}(x,y)\overline{\eta}(x,y)}{\eta^2(x,y)-\overline{\eta}^2(x,y)}\]
-
-
-
估计退化函数的一般方法有哪些?观察估计、试验估计、建模
-
观察估计。都说了估计还能怎么办。
由于对图像本身没有先验知识,因此只能从退化后的图像收集信息。这是一种只在特殊应用下有用的方法,例如恢复一张时间很久的照片。
从强信号(高SNR)区域尝试退化估计,对子图像的复原成功后再将模型应用于整个图像。除了高信噪比区域,还可以是已知图形或有明显特征的图形,以及有明显界限的标志物等得到的传递函数根据空间不变性可以直接推广到整个空间。由于选择了强信噪比区域,此处忽略噪声。
\[\hat H(u,v)=\frac{G_s}{\hat{F}_s}\] -
试验估计。也是估计。
可以采用相似的退化图像获取设备,建立理论上近似准确的退化函数估计。利用相同的系统设置,对一个脉冲成像,一般来说得到的结果应该是一个常数A。
意思就是说,根据与原成像系统相似的系统获取一个理论上十分近似的图像,然后保留该系统,对一个小冲激做变换,得到结果为\(G(u,v)\)。而本身的变换结果应该是一个常数\(A=\frac{1}{MN}\),我们做这样的处理
\[H(u,v)=\frac{G(u,v)}{A}\]就可以得到退化函数。
-
模型估计。最常见的离子是航空图像受到大气湍流影响的建模。其退化的数学模型是\(H(u,v)=e^{-k(u^2+v^2)^{5/6}}\),其中k是常数,而且是一个类似高斯低通的形式,也会导致图像的模糊。根据流速不同可以选择不同的k一般流速越高k越大。另有相对运动模型,其建模估计得到\(H(u,v)=\frac{T}{\pi(ua+vb)}sin[\pi(ua+vb)]e^{-j\pi(ua+vb)}\)
对于有先验知识的图像,我们可以直接知道退化过程,进而设计复原函数。对于没有先验知识的图像,则需要依靠上面的1、2所述的后验方法对图片本身进行估计。一般是观察图像中有特征的部分。
-
-
建模估计中,如果传感器与物体之间做相对的匀速直线运动,给出退化函数
传感器与景物之间相对运动,假设快门时间T,x和y分别为位移分量,则生成图像为
\[g(x,y)=\int_0^T f\left[x-x_0(t),y-y_0(t)\right]dt\]对生成图像做傅里叶变换得到
\[G(u,v)=F(u,v)\int_0^T e^{-j2\pi[ux_0(t)+vy_0(t)]}dt\]则退化函数就可以写作
\[H(u,v)=\int_0^T e^{-j2\pi[ux_0(t)+vy_0(t)]}dt\]对于匀速直线运动我们有
\[x_0(t)=at/T,y_0(t)=bt/T\]针对一元结果为
\[\int_0^T e^{-j2\pi u\frac{at}{T}}=\frac{T sin(\pi ua)}{\pi ua}e^{-j\pi ua}\]则推广到二元可以得到
\[H(u,v)=\frac{T}{\pi (ua+vb)}sin[\pi(ua+vb)]e^{-j\pi(ua+vb)}\]其实还有点扩散退化函数和高斯退化函数等常见的退化函数。
-
由退化函数复原原图像的方法有?逆滤波、最小均方误差(维纳)滤波、约束最小二乘滤波(简单了解这些即可)。
2018大纲不要求掌握细节
已知退化函数,常用的方法有
-
逆滤波,已知\(g=Hf+\eta,\eta=g-Hf\),在对噪声没有先验知识的情况下,寻找\(f\)的估计\(\hat{f}\),使得最小均方误差准则下最近接\(g\),需要使\(\eta\)的范数误差最小,则优化\(J(f)=\mid \mid g-Hf \mid \mid^2\),求出
\(\hat f = H^{-1}g\)。
实际上就\(\hat f(x,y)=\mathfrak F^{-1}[G(u,v)/H(u,v)]\)
此时相当于没有考虑噪声的影响直接进行逆滤波,用结果除以退化函数得到原图像。但在存在噪声的条件下,即使是完全知道了退化函数也不能完全恢复原始图像,因为存在一个噪声量,其傅里叶变换的形式未知。当H较小时会导致不稳定解
\[\hat F=\frac{G}{H}=F+\frac{N}{H}\]此时N/H的比值极大,因此放大噪声项。这是无约束图像复原模型的病态性。
-
维纳滤波(最小均方误差滤波)
维纳滤波是寻找一个滤波器使\(e^2=E\{ (f-\hat f)^2 \}\)均方误差最小
这里需要假定噪声和图像无关,均值为零,且估计图像的灰度级是退化函数灰度级的线性函数,那么上式通过最小化误差函数得到的\(\hat f\)在频域表现为
\[\hat F(u,v)=\left[ \frac{1}{H(u,v)·\frac{\mid H(u,v)\mid^2}{\mid H(u,v)\mid^2 + \frac{S_\eta(u,v)}{S_f(u,v)}}} \right]G(u,v)\]括号内的部分被称为复原传递函数,或者最小均方误差滤波器。如果噪声为0,原式退化为
\[\hat F(u,v)=\left[ \frac{1}{H(u,v)·\frac{\mid H(u,v)\mid^2}{\mid H(u,v)\mid^2 + K}} \right]G(u,v)\]可以通过调整K来实现最佳视觉效果。
- 当无噪声或噪声极小的时候,原表达式的形式近似于逆滤波。
- 噪声较大的时候,维纳滤波器趋向于0,表现出了对噪声的极大抑制。
- 对于衍射受限光学系统,截止频率之外的H为0,但是由于两个功率项的存在,维纳滤波器的值始终不为0。
-
约束最小二乘方滤波
非约束复原是只考虑误差\(J(\hat f)=\mid \mid g-Hf \mid \mid^2\)最小以外不考虑其他约束条件,因此只需要了解降质系统的传递函数或点扩展函数就能利用如前面所述的方法进行复原,但是由于传递函数存在病态问题,复原只能在靠近原点的优先区域内进行。
约束的方法需要知道噪声的统计特性或噪声与图像的某些相关情况。根据先验知识的不同采用不同的约束条件可以得到不同的复原方法与结果。在最小二乘类约束复原中,要设法寻找一个最优估计\(\hat f\),使得\(\eta = \mid \mid Q\hat f\mid \mid^2\)的函数最小化。常采用拉格朗日乘子算法,准则函数设计为
\[J(\hat f)=\mid \mid Q\hat f \mid \mid^2 +\alpha (\mid \mid g-H\hat f \mid \mid^2 -\mid \mid \eta \mid \mid^2 )\]求解得到\(\hat f = (H^TH +\gamma Q^TQ)^{-1}H^Tg\)
式中gamma=1/alpha,这个常数必须调整到约束被满足为止,上式的关键是寻找合适的变换矩阵Q。如果采用图像f和噪声的相关矩阵表示Q,可以得到维纳滤波的复原方法,选用拉普拉斯算子的形式,使某个函数的二阶导数最小,也可以推导出有约束的最小平方恢复方法。
这部分不再详细写出,自己看吧
-
-
逆滤波时,为什么在图像存在噪声的时候不能选择全滤波?试采用逆滤波原理说明,并给出正确处理方法
2018-12-7 10:25:37
2018大纲删去该部分了全滤波时,因为噪声是一个未知量,因此直接变换时得到的结果实际上是
\[\hat F(u,v)=F(u,v)+\frac{N(u,v)}{H(u,v)}\]当退化函数比较小或为0的时候,可能导致不稳定解,N/H比值非常大,噪声项会被放大,导致噪声成为复原结果的主要成分。这是无约束图像复原模型的病态性。
此时需要注意一些事项
-
\(H(u,v)=0\)的位置不计算,即将逆滤波时的滤波器写成\(P(u,v)=1/H(u,v),\mid H\mid != 0;P(u,v)=1,\mid H\mid = 0\)
这样就可以避免病态性问题。
-
当H非常小的时候,N/H就成为了变换的主导。实际上大多数实际系统中,\(\mid H(u,v)\mid\)离开原点后的衰减速度很快,因此复原应当局限于离原点不太远的区域内优先进行。在大于该区域后的区域中,我们认为\(1/H(u,v)=0\)
-
为了避免振铃影响,取反向滤波器P为\(P(u,v)=k ,\mid H(u,v)\mid \leq d;P(u,v)=1/H(u,v) ,else\)
这样变化较为平缓,可以避免振铃。其中k和d都是小于1的常数,而且d选的较小为好。
-
第六章 彩色图像处理
这章的重点问题怎么一直是HSI问题,叭了个叭叭叭叭叭叭叭。
2018-12-7 10:28:21
修正
-
图像的彩色模型解释,RGB、CMYK、HSI等的含义及应用
彩色是非常有效的描述方法,常常可以简化从场景中提取和识别目标;人眼能够区别数千种色彩,但是仅能区分40种以内的灰度级。颜色的描述是通过建立彩色模型来实现的,不同的彩色模型对应于不同的处理目的。经过大量的彩色测试实验,CIE提出了一系列彩色模型
-
面向硬件的彩色模型
RGB模型,将颜色分为红绿蓝三色光,常用与监视器、彩色视频、显示设备等,是一种叠加模型。每个颜色有8bit,共计24bit,可以表示\(2^{24}\)种颜色
后来RGB添加了一个叫做alpha的通道,即RGBa,这个被称为真色彩,可以表示32bit的颜色。
CMY(K)模型,青紫黄(黑),彩色打印,是一种油墨的模型,减色系统,是一种吸收颜色的模型。可以表示为\(\left[ \begin{matrix}C\\ M\\ Y\end{matrix} \right]=\left[ \begin{matrix}1\\ 1\\ 1\end{matrix} \right]-\left[ \begin{matrix}R\\ G\\ B\end{matrix} \right]\)
由于CMY叠加不能生成纯黑色,因此加入纯黑色构成了CMYK色彩模型。
对于CMYK而言,是在CMY中选出最小的那个,并对CMY的每一个元素都减掉这个最小的,并添加与这个最小值相同的K项。
-
面向应用的彩色模型
HSI模型,将图像分为色调Hue,饱和度Satuation,亮度Intensity。更适用于大量的基于灰度的图像处理技术。HSI体现了人眼观察彩色的方式。
以上模型都可以通过数学方法互换。
-
-
什么是伪彩色图像处理?目的是什么?试列举伪彩色处理的主要方法
按照课本订正
@2018-11-30 13:59:17
伪彩色图像处理是指基于一种特定的规则将灰度值赋以颜色的处理。主要应用为,人目视观察和解释单幅图像或序列图像中的灰度级时。
利用彩色的主要动力是人类可以辨别几千种色调和强度,但是却只能辨别20多种灰度级。为了更好地观察和解释图像中不同灰度级的内容,人为地把不同颜色(灰度级)分配到单色上的图像。
对特定灰度赋予某种色彩,方法很多(强度映射和通道合成)。
-
最简单的方法就是将某一灰度直接映射为固定的彩色值,这也称为调色板方法。
-
设定三个独立函数将给定灰度值映射到RGB中。课本给的应用是行李箱危险物品检测时用的赋色法,应用了不同物品的X光成像特性。
-
灰度分层方法。放置一些平面对灰度级进行分割,不同层次的灰度图像赋以不同的颜色。课本给出了甲状腺医学图像的赋色距离。
PPT给出的主要用途是:
将景物映射为奇异彩色,比本色更引人注目;
适应人眼对颜色的灵敏度,提高鉴别力,可以把细节丰富的物体映射成深浅亮度不一的颜色;
还可以遥感多光谱图像转化成假彩色,获取更多信息。
-
-
在彩色图像处理中常采用HSI模型,适用于图像处理的原因是什么
RGB色系虽然是常见的显示器与摄像机等采用的色系,但颜色的构成与人对颜色的理解方式不同,所以在进行处理与调整的时候不容易获得准确的参数。
HSI在颜色描述上更为合适,反映了人的视觉系统感知彩色的方式(色度与亮度分离),以色调、饱和度和强度三种基本特征量来感知颜色。HSI分别独立,可以分别对应不同的图像处理任务,例如利用I可以应用灰度图像处理算法,RGB中就难以使用;利用S可以单独调整颜色的饱和度,而H只描述色彩,不描述能量。
-
解释HSI模型的含义
-
H:色调分量,用角度表示色调与红色的偏离程度,与光谱的波长相对应,只描述色彩而不描述能量等。
-
S:饱和度分量,用色环到原点的半径长度描述饱和度,其中中心是灰色,饱和度为0;最边缘的饱和度为100%。
-
I:亮度分量,只描述整体亮度,而不计颜色是什么,饱和度是多少。
HSI形成双锥的模型,空间中的每一点都对应一种颜色,可以说HSI模型可以表示无穷多种色彩,但是通过RGB转化来的HSI只能表示24bit色。
-
第八章 图像压缩
-
图像压缩中主要数据冗余是什么?列举常见的图像压缩格式
主要冗余分为三种
-
编码冗余
也称为信息熵冗余,如果图像中平均每个像素使用的比特数大于该图像的信息熵,就认为存在冗余。这个是编码冗余。
引入信息论是为了回答一些问题,例如显示一幅图像需要多大的数据量?有没有描述一幅图像时没有信息损失的最小数据量?
显然我们应当认为,很难有编码方式
-
像素间冗余
空间和时间冗余,大多数图像存在着空间连贯性,视频中帧间图像也存在相关性,这种相关性造成数据冗余。对于彩色图像,还会出现HSI冗余。
-
心理视觉冗余
人眼对所有的视觉信息的感知灵敏度不同,在正常视觉中处理的各种信息的重要性不同,一般来说对人眼并不十分重要的内容就是心理视觉冗余
列举若干常见的图像压缩格式
RLE编码,BMP、TIFF等
CCITT编码,TIFF、PDF等
RAW,无损压缩,RAW。
JPEG,有损压缩,压缩比很高。在编码时有霍夫曼编码参与。
PNG、TIF等都是压缩格式。
-
-
霍夫曼编码是什么?计算下列编码中的编码效率,压缩率、冗余度、信息熵
2018-12-7 10:55:15
编码部分补充在下面了。霍夫曼编码首先统计数据中各个字符出现的概率,然后按照字符出现的频率高低顺序分别由短到长编码,使得越常出现的字符编码越短。
简单步骤为
- 信源中符号按概率递增顺序排列
- 将两个最小的概率相加作为新符号的概率
- 重复1和2直到概率和为1
- 完成上述步骤后沿路径返回进行编码。寻找从每一个信源符号到概率为1的路径,每层有两个分支,分别为大的概率赋值0,小的概率赋值1,从而得到每个符号的编码。引例见本章结束后的下方区域。
-
设有一个信源如下表,进行霍夫曼编码,大概率给予码字0,小概率给予码字1,给出码字平均码长和编码效率
-
算术编码
然后是算术编码
算术编码分为静态类型和自适应类型
这里有一个参考来源的消息,即信源概率已知的条件下,问我们采用静态型即可;当信源概率未知时,采用自适应型。
算术编码的基本原理是
-
根据信源不同符号序列的概率,把\([0,1)\)区间划分为互不重叠的子区间,子区间的宽度恰好是各符号序列的概率。这样不同的符号序列与不同的子区间一一对应,因此每个子区间内的任意一个实数都可以用来表示对应的符号序列,这个数就是该符号序列对应的码字。
一串符号序列发生的概率越大,对应的子区间就越宽,要表达它所需要的比特数就越少
算数编码输出结果是一个小数,对于整条信息无论多长都只输出一个数且介于0到1之间。一般是二进制小数。
算术编码对某条信息编码结果为1010001111,则代表小数0.1010001111,即0.64
十进制到二进制小数的方法是乘二取整循环直至0
对于仅仅可能出现三种符号的信源,举例如下(自适应法)
-
假设三个符号概率相同为1/3,则将区间[0,1]等比例分配给三个字符,即分区为0.333333,0.6666667。
-
输入第一个字符,假如是b,则取第二个区间[1/3,2/3],在其中继续。由于相比之下b数量增多,我们认为b的概率为2/4,在新的区间内继续划分为三部分,1:2:1。
-
输入第二个字符,假如是c,则取第三个区间[0.5834,0.6667],由于现在有5个字符了,c的概率为2/5,则在新的区域中划分1:2:2的区间。
-
输入下一个字符,假设仍为c,则取第三部分[0.6334,0.6667],并且按照概率继续细分为1:2:3三个部分。
-
输入最后一个字符,假如是b,此时选择第二个区间,[0.6390,0.6501],然后在这个区间内选择一个容易化为二进制小数的数字,以此为输出,达到数据压缩的目的。此处可以选择0.64为输出,即0.1010001111
算术编码比较容易定义自适应模式,即为每个符号使用相同的初始概率,然后根据出现的符号做出相应的改变,得到改变值,因此概率模型保持一致。自适应模式适用于不进行概率统计的场合。
实现要比霍夫曼编码复杂。但是如果信号源符号出现概率接近的时候,算术编码效率高于霍夫曼编码。因为编码的时候不要求每个符号都转化为整数,在理论上达到了香农第一定理的极限。
-
-
离散余弦变换的表达式和基于DCT块编码系统实现的主要步骤,并对每一步作简要说明
对于\(n \times n\)的图像\(g(x,y)\)采用变换法进行处理的时候,形式如下所示
\[T(u,v)=\sum\limits_{x=0}^{n-1}\sum\limits_{y=0}^{n-1}g(x,y)r(x,y,u,v)\]其中我们称\(r(x,y,u,v)\)是变换的核函数。对于已知变换结果,我们同样定义反变换如下
\[g(x,y)=\sum\limits_{u=0}^{n-1}\sum\limits_{v=0}^{n-1}T(u,v)s(x,y,u,v)\]\(s\)是反变换核。
对于
\[r(x,y,u,v)=s(x,y,u,v)=\alpha(u)\alpha(v)cos\left[ \frac{(2x+1)u\pi}{2n} \right]cos\left[ \frac{(2y+1)v\pi}{2n} \right]\]DCT
而言,变换的核函数为其中\(\alpha(u)=\sqrt{2/n},u!=0;\sqrt{1/n},u=0\)。
将此核函数带入上述的离散变换式中即可得到变换结果。
主要步骤:
-
输入\(N \times N\)图像
-
构造\(n \times n\)子图
-
带入变换式做正变换
-
量化,将携带信息较少的边远系数粗略量化或舍弃
-
编码,进一步降低冗余
以上是正变换过程。对于逆变换过程,应为
-
解码
-
做DCT反变换
-
合并\(n\times n\)子图
-
首先是霍夫曼编码引例。
Symbol(Code) | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
Probability | 0.1 | 0.4 | 0.06 | 0.1 | 0.04 | 0.3 |
做概率大小排序得到
初始 | 信源 | 信源 | 消减 | 步骤 | |
---|---|---|---|---|---|
符号 | 概率 | 1 | 2 | 3 | 4 |
2 | 0.4 | 0.4 | 0.4 | 0.4 | 0.6 |
6 | 0.3 | 0.3 | 0.3 | 0.3 | 0.4 |
1 | 0.1 | 0.1 | 0.2 | 0.3 | |
4 | 0.1 | 0.1 | 0.1 | ||
3 | 0.06 | 0.1 | |||
5 | 0.04 |
编码过程就是回溯过程,从右往左按照概率求和的顺序进行回溯,分支处遇到大值就给0,小值就给1。回溯到最开始的状态就完成了编码。
初始 | 信源 | 对消减 | 信源 | 赋值 | ||||||
---|---|---|---|---|---|---|---|---|---|---|
符号 | 概率 | 码字 | 1 | 码字 | 2 | 码字 | 3 | 码字 | 4 | 码字 |
2 | 0.4 | 1 | 0.4 | 1 | 0.4 | 1 | 0.4 | 1 | 0.6 | 0 |
6 | 0.3 | 00 | 0.3 | 00 | 0.3 | 00 | 0.3 | 00 | 0.4 | 1 |
1 | 0.1 | 011 | 0.1 | 011 | 0.2 | 010 | 0.3 | 01 | ||
4 | 0.1 | 0100 | 0.1 | 0100 | 0.1 | 011 | ||||
3 | 0.06 | 01010 | 0.1 | 0101 | ||||||
5 | 0.04 | 01011 |
例题参考答案为\(\{ 0,11,100,101 \}\),霍夫曼编码应该是不唯一的。
平均码长1.8125,由于信息熵可以认为是信息量,描述信息时的编码可能存在冗余,因此我们的编码方式得到的结果一定要比信息熵大。效率就是信息熵与我们平均码长的比值。这里信息熵就是加权的对数和经计算应该是1.78左右,则编码效率就是98.24%
压缩率:
\[C=b/b'\]相对冗余
\[R=1-1/C\]压缩率是不可能为1以下的,因为定义为压缩前比压缩后,因此一定大于1
平均码长(即码长加权和)
\[\overline L =\sum\limits_{i=1}^{N}p(x_i)l_i\]信源熵
\[H=\sum\limits_{i=1}^{N}p(x_i)log_2(1/p(x_i))\]编码效率
\[\eta =H/\overline L \leq 1\]第九章 形态学图像处理
-
腐蚀和膨胀操作,简答原理或实现,说明主要特点及应用
-
膨胀操作,定义如下。假定A和B是\(Z^2\)上的集合,A被B结构元膨胀定义为
\[A \oplus B:=\{ z\mid ( B_z) \bigcap A \neq \varnothing \}\]其含义为把结构元\(B\)平移z后得到\(B_z\),若\((\hat B_z) \bigcap A \neq \varnothing\),则记下这个z点,所有满足这个运算的z点形成的集合被称作A被B膨胀的结果。
白话理解一下就是结构单元B在遍历移动中只要有一个点落在了区域A内,就认为结构单元B的z对应位置(一般是对称中心)覆盖的区域为膨胀的结果。其特点是会将图形扩大(bks膨胀),膨胀的应用之一就是将裂缝桥接起来,消除小的孔洞。
-
腐蚀运算定义如下。假定A和B是\(Z^2\)上的集合,A被B结构元腐蚀定义为
\[A\ominus B:=\{ z\mid (B_z)\subseteq A \}\]其含义是结构单元B完全包含于A时,z对应的位置就是腐蚀后的结果。主要特点是腐蚀后的图形变小,应用是消除二值图像中不相关的细节,细胞计数,黏连字体分割,人流量统计等。
腐蚀和膨胀是对偶运算。
-
-
开操作和闭操作,同上
-
开运算定义为
\[A\circ B=(A \ominus B)\oplus B\]就是先腐蚀后膨胀。
基本特征为
-
\(A\circ B\)是\(A\)的子集
-
如果C是D的子集,则\(C\circ B\)是\(D\circ B\)的子集。
-
多次开运算相当于一次开运算。
主要应用(取决于第一个运算)
-
断开狭窄的连接,去除细胞的粘连、字体的粘连
-
消除细小物体(例如噪点)
-
使用圆或椭圆时可以令对象轮廓光滑
-
保持大物体的尺寸基本。
开运算往往是对图像轮廓做平滑处理,使得细小突起消失,狭窄连接断开(当然也与结构元有关)
-
-
闭运算定义为
\[A\bullet B=(A \oplus B)\ominus B\]就是先膨胀后腐蚀。
基本特征为
-
\(A\)是\(A\circ B\)的子集
-
如果C是D的子集,则\(C \bullet B\)是\(D \bullet B\)的子集。
-
多次闭运算和一次闭运算是一样的。
主要应用为(取决于第一个运算)
-
连接狭窄的连接,如短线与字体
-
填充无体内细小的孔洞,可以用于去除早点
-
填补轮廓线的断裂
-
保持大物体的基本尺寸。
闭运算也是趋于平滑轮廓,但是和开运算相反,它一般使狭窄的断裂与细长的沟壑融合,填补空缺。
-
-
-
采用指定结构元素对指定图形做膨胀操作
会做就行不强求,2018年本次考试并不涉及。
第十章 图像分割
-
解释图像分割的应用,图像分割是基于灰度的什么特征实现的?
图像分割是图像识别和图像理解的基本前提,图像分割质量的好坏直接影响后续图像处理的效果。一般的处理步骤为
\[图像 \to 图像预处理 \to 图像分割 \to 图像识别 \to 图像理解\]图像分割是把图片分成若干特定的、具有独特性质的互不重合的区域并提取感兴趣目标的算法、技术。
应用举例:
-
确定航空照片中的森林、耕地、城市区域等,首先要将这些部分在图像上分割出来。(森林植被遥感、地图测绘)
-
文字识别也需要首先把文字选出来。
-
要识别和标定细胞,需要用图像分割技术。一幅图像往往是由背景和目标组成,若想从图像中“提取”物体,需要用专门的方法标出数与该物体的点,例如前景置为1、背景置为0的滤波器直接提取。
图像分割一般是基于亮度值的不连续性与相似性进行的
-
不连续性(区域之间)
- 即突变性,不同区域的交界处像素灰度值具有不连续性,据此可以找到区域交界处的点、线、边缘,再通过这些来确定区域。
-
相似性(区域内部)
- 同一区域内的像素往往具有灰度、颜色的相似性,据此找到灰度值相似的区域,区域的外轮廓就是对象的边缘。门限(阈值)的处理、区域生长、区域分离、聚类都是这类方法。
-
-
一阶、二阶导数对图像的灰度特征是如何响应的?
-
在灰度值恒定的区域,一阶二阶微分值都为0;
-
在灰度阶梯或斜坡的起点、尾点(即灰度的转折点),一阶二阶微分值不定(但不为0)
-
沿着灰度级斜坡面,一阶微分不为0(是一个常数),二阶微分为0
这些变化规律可以用来对噪声点、细线和边缘模型化。
-
一阶微分会产生较宽的边缘,二阶微分对细节响应较强;
-
一阶微分对灰度斜坡、灰度阶梯有较强的响应;二阶微分处理对灰度阶梯、灰度斜坡的两端产生双响应;
-
二阶微分算子在灰度值变化相似时,对线响应比对阶梯响应强,对点响应比对线响应强(点>线>阶梯)
-
二阶微分细节增强的能力强。
-
-
边缘检测(Sobel,Prewitt,Roberts,Laplace算子)。给出模板并分析功能
-
\[\left[ \begin{matrix}-1 & -2 & -1\\ 0 & 0 & 0\\ 1 & 2 & 1\end{matrix} \right]\] \[\left[ \begin{matrix}-2 & -1 & 0\\ -1 & 0 & 1\\ 0 & 1 & 2 \end{matrix} \right]\] \[\left[ \begin{matrix}-1 & 0 & 1\\ -2 & 0 & 2\\ -1 & 0 & 1\end{matrix} \right]\] \[\left[ \begin{matrix}0 & 1 & 2\\ -1 & 0 & 1\\ -2 & -1 & 0\end{matrix} \right]\]Sobel
算子,模板如下:主要功能是去除噪声与增强边缘,但是平均时会丢失一些细节信息,使边缘模糊。相比
Prewitt
算子,Sobel
算子有对不同边缘点的加权作用,其模糊程度低于Prewitt
算子。二者都不能完全排除监测中出现的虚假边缘。上述四个算子分别用来计算四个方向的边缘。边缘方向与0的排列相同。
-
\[\left[ \begin{matrix}-1 & -1 & -1\\ 0 & 0 & 0\\ 1 & 1 & 1\end{matrix} \right]\] \[\left[ \begin{matrix}-1 & -1 & 0\\ -1 & 0 & 1\\ 0 & 1 & 1 \end{matrix} \right]\] \[\left[ \begin{matrix}-1 & 0 & 1\\ -1 & 0 & 1\\ -1 & 0 & 1\end{matrix} \right]\] \[\left[ \begin{matrix}0 & 1 & 1\\ -1 & 0 & 1\\ -1 & -1 & 0\end{matrix} \right]\]Prewitt
算子,模板如下Prewitt
算子主要作用是降噪和边缘增强,去噪效果比Sobel
略差。是利用边缘处 达到极值的方式进行检测边缘,一般采用阈值法进行区分,但是效果并不合理,因为可能会导致边缘点与噪声的误判。 -
\[\left[ \begin{matrix}-1 & 0 \\ 0 & 1 \end{matrix} \right]\] \[\left[ \begin{matrix}0 & -1 \\ 1 & 0 \end{matrix} \right]\]Roberts
算子,模板如下该算子计算对角方向相邻两像素之差,也称为四点差分法。算法利用四点进行差分,求得梯度,方法简单,边缘定位精度比较高,但是对噪声敏感,常用与噪声很低的图像边缘点检测。
该算子没有中心点,并不常用。
-
\[\triangledown^2 f=\frac{\partial^2 f}{\partial x^2}+\frac{\partial^2 f}{\partial y^2}=\left[ \begin{matrix}0 & 1 & 0\\ 1 & -4 & 1\\ 0 & 1 & 0\end{matrix} \right]\]Laplace
算子,模板如下这时最经典的拉普拉斯算子表示形式,实际常用的还有对角型的和45度旋转不变的。因此说拉普拉斯算子是不依赖于边缘方向的,定位十分准确。
当然一般不使用拉普拉斯算子对边缘检测,因为拉普拉斯算子利用二阶导数,因此对噪声很敏感,运算时会产生双边缘,这对分割来说是不期望的。而且由于旋转不变性,往往不能检测边缘的方向。
Laplace
算子在分割中起到的作用包括- 边缘检测的各向同性
- 利用他的零交叉的性质对边缘定位
- 确定一个像素是在边缘暗的一边还是亮的一边。
-
-
高级复杂的边缘检测算法:Marr-Hildreth(LOG)和Canny算子实现步骤、特点和应用,给出主要步骤的数学模型。
-
Marr-Hildreth
算子,于1980年提出,在边缘保持的同时还能对噪声有一定的抑制能力。由于Laplace
算子对噪声敏感,因此先对图像做高斯平滑,然后进行检测。根据二阶导数过零点的形式来确定边缘位置。- 首先做高斯平滑,\(G(x,y)=e^{-\frac{x^2+y^2}{2\sigma^2}}\)
- 然后做拉普拉斯算子的边缘检测,\(\triangledown^2G(x,y)=\left[ \frac{x^2+y^2-2\sigma^2}{\sigma^4} \right]e^{-\frac{x^2+y^2}{2\sigma^2}}\)
-
寻找此时结果中的零交叉点,并认为这样的点就是边缘点。在\(g(x,y)\)内
P
点邻域内水平、垂直、\(\pm 45^\circ\)方向,不仅符号不同,而且他们的差值超过设置的阈值时,认为P
点为零交叉像素。该方法是对高斯函数应用拉普拉斯算子,也称为
\[\left[ \begin{matrix}0&0 & 1 & 0&0\\ 0&-1&-2 & -1 & 0\\ -1 & -2 & 16 &-2 &-1\\ 0&-1&-2 & -1 & 0\\ 0&0 & 1 & 0&0\end{matrix} \right]\]LoG
方法,即Laplacian of Gaussian
。高斯函数应用拉普拉斯算子后,函数被称为是Marr
小波,或墨西哥草帽函数,一般被描述为如下模板先经历了高斯平滑,然后使用拉普拉斯算子检测边缘,克服了拉普拉斯算子抗噪声能力较差的缺点,但同时在平滑时可能导致将原有较为尖锐的边缘被平滑掉。其中的\(\sigma\)的选择十分重要,因为这个参数是高斯低通滤波器的截止频率相关的参数,在抑制噪声的同时也会损失更多的细节。
-
Canny
算子,使用了变分法,最优检测使用四个指数函数项的和表示,非常近似于高斯函数的一阶导数。2018-12-7 14:14:57
对以下内容做订正,参考来源为冈萨雷斯课本。
-
去噪声:高斯平滑
\[\frac{1}{159}\left[ \begin{matrix}2&4 & 5 & 4&2\\ 4&9&12 & 9 & 4\\ 5 & 12 & 15 &12 &5\\ 4&9&12 & 9 & 4\\ 2&4 & 5 & 4&2\end{matrix} \right]\]一般取这样的高斯滤波器,将噪声平滑掉(是空间域卷积desu)。\(n \times n\)模板,其中\(n\geq 6\sigma\)
后面也将讨论该模板如何取值。
-
寻找梯度:这里未必使用四个
mask
对梯度进行计算。按照一般流程,计算两个即可。此处可以使用Sobel
或Prewitt
等算子进行计算,检测水平、垂直以及对角线的\(\pm 45^\circ\)方向的边缘,得到每个点的梯度幅度和方向。计算得到\(G_x,G_y\),然后可以得到幅值和方位角
\[M(x,y)=\sqrt{G_x^2+G_y^2}\] \[\alpha(x,y)=arctan(\frac{G_y}{G_x})\]计算出以上后可以进行边缘细化
-
边缘细化(非最大抑制):
往往根据梯度所得的边缘是比较大的,但是我们只需要甚至单像素的边缘即可完成分割任务,因此采用一定手法做边缘细化。
对\(\alpha(x,y)\)中以\((x,y)\)任一点为中心的\(3 \times 3\)邻域内,给出以下非最大抑制方案:
首先定义四个方向的边缘,分别为水平、垂直、正负\(45^\circ\)边缘。这些边缘方向与梯度方向正交。在处理时将方向标定到这四个方向上时处理会变得容易。定义四个方向分别为\(d_1,d_2,d_3,d_4\),为这四个方向各分配45度邻域,只要方向是落在其中的,就认为是边缘这个方向的。
假设此时方向落在\(d_k\)区间。我们新建一个图像为\(g_N(x,y)\)
按照边缘方向进行比较,如果此处的幅值\(M(x,y)\)至少小于沿\(d_k\)的两个相邻像素之一,则认为\(g_N(x,y)\)此点应为抑制点,赋值为0。否则认为这个点可能是一个边缘,留下此点做赋值为\(M(x,y)\)并等待下一步处理。
-
双阈值处理和连接分析来检测和连接边缘。(抑制孤立低阈值点)
高梯度幅度较有可能是边缘,但没有确切值来标定多大才是边缘。此处我们设置两个阈值,分别为高阈值\(T_H\)和低阈值\(T_L\),前者一般是后者的2-3倍。
我们假设在低阈值标定时,真实边缘产生的低阈值标定是与高阈值产生的边缘连通的,但是噪声产生的低阈值标定是不与强阈值标定的像素相连的。
首先对我们用高阈值已经标定了边缘的图像进行跟踪,当遇到一个非零灰度像素时,跟踪该点开始的轮廓线直到终点。这是比较确信的边缘。(这段废话就是在说,高阈值处理的结果就认为是有效边缘)
从低阈值计算的结果中减掉所有高阈值中的边缘点,方便继续进行分析。由于高阈值进行计算时常会出现缝隙,因此用低阈值做补充。
对于低阈值点,凡是能够在8邻域内连接到一个强阈值点,则认为该低阈值点也是边缘,反之认为这些点是噪声引起的低阈值点,抑制掉即可。反复进行搜索直到所有低阈值点都已经判明,得到的边缘就是我们期望用
Canny
算子得到的边缘。 -
高斯滤波器的大小问题,一般而言取\(n \gt 6\sigma\)的模板。
Canny
算子的应用没有找到太多,但是两者共同的特点如下。 -
低错误率
-
定位边缘精准
-
边缘只标记一次并且不包含噪声(单一的边缘响应)
-
其中Canny检测结果可以说是亚像素级。
-
-
-
Hough变换检测直线
Hough
变换实际是一种很naive的变换。利用线和点的对偶性,将原始图像空间给定的曲线通过曲线表达形式变为参数空间的一个点。这样就把原始图像给定曲线检测问题转化为寻找参数空间中的峰值问题。在已知曲线形状的条件下,该变换实际上是利用分散的边缘点进行曲线逼近,可以看成是聚类分析技术。
以直线分析为例。在图像空间中,经过某点\((x,y)\)的直线\(y=ax+b\)可以表示为\(b=-ax+y\),这就是参数空间的一条直线了(图像空间中的过定点直线系可以表示为参数空间的一条直线)。取直线上的两个点分别对应到参数空间的两条直线上,那么两条直线的交点坐标就能够对应原图像空间中的一条直线。
对于边界上\(n\)个点的点集,找出共线的点集和直线方程。仍然构建参数平面,那么图像空间的每一个点都会在参数空间对应一条直线。在参数空间中的最多的直线的共同交点就对应了图像空间的直线方程。
-
在参数空间建立二维数组A,第一维设置为a的范围,第二维设置为b的范围,并初始化置零。
-
然后对图像空间中的点做
Hough
变换,得到的直线每个交点都在数组中将对应位置+1(简单统计哪里交点最多)注意当图像空间中有竖直直线的时候,我们取斜率
a
无穷大并不能在参数空间表示。此时我们要使用极坐标表示的参数空间。假设直线上有n点,ab的范围有k,计算复杂度为nk。 -
找出交点最多的位置,我们就得到了直线方程。实际上我感觉用聚类是不是更好?
看起来
Hough
变换的牛逼之处在于能给出直线的解析式。极坐标的表示形式如下
\[xcos\theta + ysin\theta =\rho\]参数平面选取\(\theta,\rho\),则对应出来的是正弦曲线。采用交点累加或交点统计直方图的方法找到相交最多的点就能找到该点对应的xy平面直线线段。
当然前面也说过,
Hough
变换还可以检测特定解析式的曲线。一般情况下采用Hough变换前要使用Canny等算法对边缘点进行预提取。
-
-
简述门限(阈值)分割图像的基本思路,自动全局阈值应该如何选取?
阈值分割技术。根据图像的整体信息(直方图等)或局部信息(共生矩阵(这是啥))来选择一个或多个阈值,然后将图像按照阈值分割为背景和目标两类区域或多个目标与背景的区域。
门限(阈值)法处理简单直观,易于实现。
常见的单阈值分割技术是利用预设的阈值设置掩膜,保留位置设置掩膜为1,不保留位置设置掩膜为0,直接相乘过滤即可。可以采用开运算闭运算进行小区域的清除。
阈值一般为灰度直方图的峰值的底部。
自动全局阈值计算方法如下
- 选择一个
T
的初始估计值,T
是阈值 - 用该阈值分割图像,会产生两组像素,所有高于阈值的一组,低于阈值的一组
- 计算两组区域中的平均灰度值,并根据灰度值的平均值获取新的阈值。
- 重复以上步骤直到两次获取的阈值之差小于我们预定的\(\Delta T\) - 综合题目中模板大小3×3,图像矩阵一般是4×4或5×5,计算之外还要求对模板的作用进行分析。
- 选择一个
那么到此为止,数字图像处理的相关内容已经简单的梳理了一遍(除了图像压缩涉及编码的内容不易直接排版)。
2018-12-7 14:50:14
至此第二次修订已经完成。
Extra - 数字图像处理课程设计 - Style Transfer
传统数字图像处理是针对图像的传统特征进行增强或修改,这些特征往往是人为设定的。基于CNN的图像处理实际上也是针对特征的处理,但是特征与传统的特征不同。CNN中的卷积核一般是需要网络自行优化的,与人为设计相比,在不同的处理任务中,卷积核可能并不相同,也不需要人为额外设计。
1. CNN 模型
1.1 CNN的历史
- CNN最早可以追溯到1968年,Hubel和Wiesel发表了一篇论文,文中讲述了猫和猴的视觉皮层中含有对视野的小区域单独反应的神经元。文中提出的感受野概念为CNN的局部感知奠定了基础。
- 1980年神经感知机出现,标志着第一个初始的卷积神经网络诞生。神经感知机将一个视觉特征分解成许多子特征,通过分层递接相连的特征平面进行处理。
- 上世纪的发展始终较为缓慢,受限于数据量与计算力,大多数进展仅仅局限于理论
- 2005年左右,人们利用GPU实现了CNN的加速运算,一种使用专用加速的CNN处理方式出现,从而使得CNN重新发展,深度学习也进入了大众视野。
- 2012年ImageNet大赛中,CNN首次夺得冠军,并大幅超越其他算法
1.2 CNN基本结构
CNN由输入层、输出层以及多个隐藏层组成。这个结构和传统的nn结构相同,通过输入层将数据送入网络,网络中进行运算后从输出层输出。中间的隐藏层一般包括卷积层、池化层、ReLU层和全连通层。从我个人理解,卷积层使用类似卷积的方式减少运算参数,并抽取图像的信息,池化实际上是一个降采样,也分很多种;ReLU是线性整流单元的缩写,与此相关的是机器学习中的一些非线性函数。其他类似的函数还有Sigmoid
,tanh
等,此处不再介绍其性质。经过试验验证、理论证明,可以知道ReLU在处理此类问题上不仅高效而且效果较好;全连通层作用其实是线性变换。
数字图像可以理解为一个矩阵,拥有多个通道的彩色图像就是一个张量。TensorFlow的取义就是张量流,数据都是以张量形式在网络中流动的,因此张量可以作为网络的输入。
图像经过输入层后来到隐藏层。首先介绍卷积层。
-
卷积层是CNN的核心,卷积层可以理解为是一组可以被训练的滤波器组。卷积层一般有较小的感受野,常见的卷积核也就3×3或5×5,在VGG的一些模型中还出现过1×1的卷积核作特殊用途。在网络的前馈过程中,卷积核对图像进行卷积,然后将结果进行输出(有时会通过激活函数后输出)。
实际上图像的卷积有相关的含义,与我们课程中的相关运算很像,我们可以理解为卷积过程在进行相关匹配,以此来提取更高层次的特征。例如我们使用的
Sobel
算子,就会匹配与算子相似的特征。 -
池化层的目的就是下采样,降低数据量的方式。数字图像中数据量较多,通过池化的方法降低数据量,实际还可以让滤波器匹配更大的特征(降低了图像的特征尺寸)。常见的池化方式有最大池化
max_pooling
,工作方式如图。本次按照论文所述,将采用平均池化,即对每个窗内的像素求平均值。
-
ReLU线性整流单元,在《随机信号分析》中学到过,是一种非线性元件/函数。实际曲线如图
主要作用在于添加非线性量。
-
输出层,一般对于分类器模型,会采用\(Softmax\)等函数作为输出层,用于将结果转化为决策数值。也有直接输出结果的,本次就采用直接输出。
-
全连通层,常规神经网络,就相当于对图片应用一定维度的矩阵线性变换。
1.3 CNN的特点
- 局部感知
- 卷积核大小固定,因此感知区域有限。提升感知能力(由局部到整体)通过池化和全连通层完成。
- 传统的nn结构只能对整体作分析
- 权重共享
- 传统nn的参数量巨大。如果对一张1000*1000的图像作分析,想要映射到和原图相同大小的矩阵中,根据全连接的定义,将需要1000*1000*1000*1000个参数,运用卷积的方法可以有效降低参数的数量。
- 多卷积核
- 每个卷积核可以代表一种特征,如果采用多卷积核,就能获取不同特征的集合。
2 Neural Style
2.1 思路
论文1508.06576v2(ArXiv),A neural algorithm of artistic style,发表于CVPR16时有修改,题目为Image Style Transfer Using Convolutional Neural Networks,内容大体相似。
该算法在2016年时大受推崇,结果直观,理论简介,且容易在各种平台复现。本次采用TensorFlow
进行复现。
本算法实现的思路为
- 使用现成的识别网络,提取图像的不同层级的特征
- 低层的响应描述了图像的大体风格,高层次的响应描述了图像的内容。
- 采用梯度下降方法优化输入响应,使得我们在特定层获取特定响应。
- 经过足够次数的迭代,输入响应就获得了特定的风格与内容。
如果说mnist拥有五层卷积层和三层全连接层只是一个简单的机器学习任务,那不得不说,本项目的实现是依赖了如假包换的深度学习。
2.2 VGG
基于深度卷积神经网络的图像识别模型很多,例如GoogleNet、LeNet等,此处选择的VGG模型也是其中的一种。VGG取义Oxford Visual Geometry Group
,隶属于1985年成立的机器人研究组,这个模型实际上与传统的CNN模型并无较大差异(或者说就是一个较为复杂的CNN模型)。在图像分类比赛中获取过较好的成绩。其模型的结构为
2.3 响应(内容)逼近
对于每一个网络层,实际上输出结果可以表示为
\[x_{t+1}=f(Wx_t+b)\]其中网络的权重为\(W\),\(x_t\)是前一层的输出,\(x_{t+1}\)是当前层的输出。论文中指出,这个池化采用了average_pooling,据说可以略微提升效果。
这个(pretrained) VGG网络是现成的、训练好的,不需要我们做额外的操作就能够在低层级输出图片的小区域的信息(边角、曲线),中间层输出较大尺度的信息(方块、螺旋),高层级输出最大尺度的信息(图片的总体内容信息)
接下来需要调教网络的响应。将这个网络视为一个系统(非线性系统)
任取一个图像\(X^0\),将其输入上述的网络中,第\(l\)卷积层的响应我们记为\(X^l\),其尺寸为\(H^l \times W^l \times N^l\)。H是该层输出的高度,W是该层输出的宽度,N是滤波器组的数量。
即对于输入\(X^0\),得到系统响应为\(X^l\)。
对于我们的目标图像\(\overline{X^0}\),送入同样的网络,同样可以得到第\(l\)层响应为\(\overline{X^l}\)。
即对于输入\(\overline{X^0}\),得到系统响应为\(\overline{X^l}\)。
如果我们希望调整系统的输入,使得两个输入变得相似,一个可行的方法就是调整其响应。视确定风格的图像的响应为固定值,修改目标图像的响应,就可以让目标图像在某种程度上接近风格图像的风格。
这个调整过程是神经网络优化算法中常见的反向传播方法。假设我要调整第\(l\)层的误差,我们就可以设计范数误差函数
\[E_c^l=\frac{1}{2}\mid \mid X^l-\overline{X^l}\mid \mid ^2\]有关梯度下降法的相关内容可以看CS229那一篇文章的介绍。
用此图辅助理解
进一步的,运用链式求导法则,将误差反向传播到输入层,整个过程就是反向传播。
通过第一次求导,可以得出前一层的误差,第二次求导获取更前一层的误差,通过多次的链式求导,就能求得最前一层的误差,我们按照梯度方向进行修正,就能让输入图像的==内容==更加接近。
2.4 风格逼近
风格是没有位置关系的。
格拉姆矩阵(Gram Matrix),协方差矩阵。格拉姆矩阵的定义为
\[\Delta (\alpha_1,\alpha_2,...,\alpha_k)=\left[ \begin{matrix}(\alpha_1,\alpha_1) & (\alpha_1,\alpha_2) & ... & (\alpha_1,\alpha_k)\\ (\alpha_2,\alpha_1) & (\alpha_2,\alpha_2) & ... & (\alpha_2,\alpha_k)\\ ...&...&...&... \\ (\alpha_k,\alpha_1) & (\alpha_k,\alpha_2) & ... & (\alpha_k,\alpha_k)\end{matrix} \right]\]其中括号表示内积。
实际上可以用来判断特征之间的偏心协方差(未减去均值的协方差矩阵)。论文中采用Gram矩阵为
\[G_{i,j}^l=\sum\limits_{hw}x_{j,w,i}^l · x_{h,w,j}^l\]即第\(l\)层的格拉姆矩阵用作特征矩阵,由于计算方法抛弃了位置信息,因此可以看做是对风格的描述。第\(i,j\)位置的元素用于描述第\(i\)和第\(j\)个响应的相关性。这可以看作是一个图形风格的代表。
为了让风格像上面的内容一样得到近似,我们采用相似的方法进行逼近。
\[E_c^l=\frac{1}{2}\mid \mid G^l-\overline{G^l}\mid \mid ^2\]对误差求导可以得到
\[\frac{\partial E_s^l}{x^l_{h,w,k}}=(X^l)^T(G^l-\overline{G^l})_{i,j}\]同样通过反向传播法则可以使目标图像和我们选取的图像风格逼近。
2.5 测试
为了不失一般性,采用高斯噪声作为初始输入图像,选取一幅特殊风格的图像作为参考。其中
代表了内容特征的卷积层选择\(conv4\_2\)
代表了风格特征的卷积层选择\(conv1\_1,conv2\_1,conv3\_1,conv4\_1,conv5\_1\)
设内容误差权重为\(\alpha\),设风格误差权重为\(\beta\),则误差函数可以联合为
\[Loss_{total} = \alpha Loss_{content}+\beta Loss_{style}\]即
\[Loss_{total} = \frac{1}{2}\alpha \mid \mid X^l-\overline{X^l}\mid \mid ^2+\beta \frac{1}{2}\mid \mid G^l-\overline{G^l}\mid \mid ^2\]以下是训练了100次后的结果,耗时约10分钟。
使用GPU加强训练了2000次,得到结果对比如下
图取自 北京理工大学 良乡图书馆
原论文中没有提及缺陷,此处进行一定的说明
- 只能获取某种类型的风格。风格判定矩阵(无视位置的格拉姆矩阵)与卷积网络(局部连接匹配)的特点就决定了只能提取线条和色调这样的特征
- 此时的风格迁移算法还不能理解图像的含义,只能根据特征进行匹配。匹配时只能将本身内容相似的图像进行混合,否则需要进行细致调参(本模型的超参数超过10个),但效果仍不理想。
- 对于低对比度图像生成效果变差。
- 迁移效率较低。模型每一次迭代都在训练CNN中的参数,完成一次迭代需要更新参数很多。相比之下斯坦福大学提出的fast neural style只需要做一次前馈就能完成风格的迁移。