3.1 模拟图像
人眼看到的任何自然界的图像都是连续的模拟图像,其形状和形态表现由图像各位置的颜色所决定。色度学理论认为,任何颜色都可由红、绿、蓝三种基本颜色按不同的比例混合得到,红、绿、蓝被称为三原色。因此,自然界的图像可用基于位置坐标的三维函数来表示,即:
![]()
其中f 表示空间坐标为(x,y,z)位置点的颜色,fred,fgreen、fblue 分别表示该点的红、绿、蓝三种原色的颜色分量值。它们都是空间的连续函数,即连续空间的每一个点都由一个精确的值与之相对应。
由于平面上每一点仅包括两个坐标值,所以,任何平面图像都可以用二维连续函数表示,即:
![]()
3.2 位图图像
由于计算机仅能处理离散的数据,所以如果要计算机来处理图像,连续的图像函数必须转化为离散的数据集。经过离散化处理,一幅连续的模拟图像就变成了由很多像素(pixel)有序组成的数字图像。数字图像是连续图像f (x, y) 的一种近似表示,通常将那些离散的数据用一个矩阵表示:

每一个离散的数据代表一个像素的颜色值。上式中,M,N 分别为数字图像在横、纵方向上的像素数,即数字图像的宽度和高度。
把像素按不同的方式进行组织或存储,就得到不同的图像格式,把图像数据存成文件就得到图像文件。在Windows 系统中,最常用的图像格式是位图格式,其文件名以BMP 为扩展名。
位图矩阵中,表示各个像素值的f (x, y) 的取值范围是不同的。通常在人们的视界中,可以看到彩色图像和黑白图像,将这些模拟图像离散化后保存到计算机中,对于一幅黑白图像,只需要对各个像素赋值为0 或1 即可,用1 表示白色,用0 表示黑色。所以一幅黑白图像我们通常称之为二值图像,将一幅彩色图像或者其它的图像转化为黑白图像叫做二值化。
对于一幅彩色图像,每个像素需要用到3 个取值范围为[0,255]的整数值来分别表示前面所说的红、绿、蓝三原色分量,只是这些分量都是用整形数据表示的,称为像素颜色的R,G,B 值。 由于计算机表示一个取值范围为[0,255]的整形数据,需要8bit,三个这样的整形数据就需要24bit 来存储,所以,对于一幅真彩色位图,我们常称为24 位位图。
在当前很多数字图像处理过程中,人们通常会将24 位位图,也就是彩色位图转化为灰度图象之后再进行相关的处理。灰度图像就是图像矩阵中每个像素的值之用1 个取值范围为[0,255]的整形数据表示,换句话说,灰度图象也可以看作R,G,B 三个分量值相等的彩色图像。这样,表示一幅灰度图的每个像素只需要8bit 空间。所以,灰度图通常被称为8 位位图。
灰度化处理的方法主要有如下三种:
1、最大值法:使R,G,B 的值等于三个值中最大的一个,即:
R = G = B = max(R,G, B)
最大值法会形成亮度很高的灰度图像。
2、平均值法:对R,G,B 求出平均值,即:
R = G = B = (R,G,B) / 3
平均值法会形成比较柔和的灰度图像。
3、加权平均值法:根据重要性或其他指标给R,G,B 赋予不同的权值,并使R,G,B 值加权,即:
![]()
其中,WR ,WG ,WB 分别为R,G,B 的权值。WR ,WG ,WB 取不同的值,加权平均值法将形成不同的灰度图像。由于人眼对绿色的敏感度最高,对红色的敏感度次之,对蓝色的敏感度最低,因此使WG >WR>WB 将得到比较合理的灰度图像。实验和理论推导证明,当WR=0.30,WG=0.59,WB=0.11 时,即:
R = G = B = (0.30R + 0.59G + 0.11B)
此时,R、G、B 的取值就是该像素的亮度值,此时,得到的灰度图像最合理。
因为人眼对彩色图像的亮度变化特别敏感,所以通常情况下,直接取地图图像的亮度值作为其灰度值。也就是说,本文的灰度图像也是取彩色图像的亮度值作为灰度值。
当然,在数字图像处理的过程中,可以根据需要,将一幅图像转化成4 位位图,16 位位图等。
3.3 数学形态学
数学形态学(Mathematical Morphology)是一种应用于图像处理和模式识别领域的新方法。形态学是生物学的一个分支,常用来处理动物和植物的形状和结构。数学形态学是建立在严格的数学理论基础上的科学。用于描述数学形态学的语言是集合论,利用数学形态学对物体几何结构的分析过程就是主客体相互逼近的过程。利用数学形态学的几个基本概念和运算,将结构元素灵活的组合、分解,应用形态变换序列达到分析的目的。
3.3.1 基本概念
在数学意义上,我们用形态学来处理一些图像,用以描述某些区域的形状如边界曲线、骨架结构和凸形外壳。另外,我们也可用形态学技术进行预测和快速处理如形态过滤、形态细化、形态修饰等。而这些处理都是基于一些基本运算实现的。
用于描述形态学的语言是集合论。集合代表图像中物体的形状,例如:在二值图像中所有的黑色像素点的集合就是这幅图像的完整描述。在二值图像中,当前集合是指二维整形空间的成员,集合中的每个元素就是一个二维变量,用(x, y) 表示。按规则代表图像中的一个黑色像素点。灰度数字图像可以用三维集合来表示。在这种情况下,集合中每个元素的前两个元素表示像素点的坐标,第三个变量代表离散的灰度值。在更高维的空间集合中可以包括其他的图像属性,如颜色和时间。
形态学运算的质量取决于所选取的结构元素和形态变换。结构元的选择要根据具体情况来确定,而形态运算的选择必须满足一些基本的约束条件。这些约束条件称为图像定量分析的原则。下面列出了数学形态学的几条定量分析原则:
1、平移不变性
设待分析的图像为X,
表示某种图像变换或运算,
(X ) 表示X 经变换或运算后的新图像。设h 为一矢量,Xh 表示将图像X 平移一个位移矢量后的结果,那么,平移不变性原则可表示为:
![]()
此式说明,图像X 先平移然后变换的结果与图像先变换后平移的结果相一致。
2、尺度变换不变性
设缩放因子
是一个正的实常数,
X 表示对图像X 所做的相似变换,则尺度变换不变性可表示如下:
![]()
如果设图像运算
为结构元素B 对X 的腐蚀(记为X
B),则
对X 的腐蚀,则上式具体化为
![]()
3、局部知识原理
如果Z 是一个图形(闭集),则相对于Z 存在另一个闭集
,使得对于图形X 有下式成立:
![]()
可以将Z 理解为一个“掩模”。在实际中,观察某一个对象时,每次只能观察一个局部,即某一掩模覆盖的部分
。该原则要求对每种确定的变换或运算
,当掩模Z 选定以后,都能找到一个相应的模板
,使得通过
所观察到的局部性质,即
与整体性质
相一致。
4、半连续原理
在研究一幅图像时,常采用逐步逼近的方法,即对图像X 的研究往往需要通过一系列图像
的研究实现,其中诸个Xn 逐步逼近X。半连续原理要求各种图像变换后应满足这样的性质:对真实图像X 的处理结果应包含在对一系列图像Xn 的处理结果内。
5、形态运算的基本性质
除了一些特殊情况外,数学形态学处理一般都是不可逆的。实际上,对图像进行重构的思想在该情况下是不恰当的。任何形态处理的目的都是通过变换法去除不感兴趣的信息,保留感兴趣的信息。在形态运算中的几个关键性质如下:

3.3.2 基本定义
集合论是数学形态学的基础,在这里我们首先对集合论的一些基本概念作一总结性的概括介绍。对于形态处理的讨论,我们将从两个最基本的模加处理和模减处理开始。它们是以后大多数形态处理的基础。
1、集合
具有某种性质的确定的有区别的事物的全体。如果某种事物不存在,称为空集。集合常用大写字母A,B,C,… 表示,空集用
表示。
设E 为一自由空间,
是由集合空间E 所构成的幂集,集合
,则集合X 和B 之间只能有以下三种形式(如图3-1 所示):
①集合B 包含于X(表示为
);
②集合B 击中X(表示为
),即
;
③集合B 相离于X(表示为
),即
;

图3-1 B1 击中X,B2 相离于X,B3 包含于X
2、元素
构成集合的每一个事物称之为元素。元素常用小写字母a,b,c,… 表示,应注意的是,任何事物都不是空集的元素。
3、平移转换
设A 和B 是两个二维集合,A 和B 中的元素分别是
![]()
定义( , ) 1 2 x = x x ,对集合A 的平移转换为
![]()
4、子集
当且仅当集合A 的所有元素都属于B 时,称A 是B 的子集。
5、补集
定义集合A 的补集为: ![]()
6、差集
定义集合A 和B 的差集为: ![]()
7、映像
定义集合A 的映像为
,定义为: ![]()
8、并集
由A 和B 的所有元素组成的集合称为A 和B 的并集。
9、交集
由A 和B 的公共元素组成的集合称为A 和B 的交集。
3.3.3 二值形态学的基本运算
3.3.3.1 腐蚀
集合A 被集合B 腐蚀,表示为A
B,其定义为:
![]()
其中A 为输入图像,B 称为结构元素。A
B由将B 平移x 但仍包含在A 内的所有点x 组成。如果将B 看作模板,那么, AQB 则由在平移模板的过程中,所有可以填入A 内部的模板的原点组成。如果模板原点在结构元素的内部,那么,腐蚀具有收缩输入图像的作用。
腐蚀除了可以用上式填充形式的方程定义外,还有一个更重要的表达式:
![]()
这里腐蚀可以通过将输入的图像平移-b(b 属于结构元素),并计算所有平移的交集而得到。
3.3.3.2 膨胀
膨胀是腐蚀运算的对偶运算(逆运算),可以通过对补集的腐蚀来定义。集合A 被集合B 膨胀表示为A
B ,其定义为:
![]()
其中,Ac 表示A 的补集。为了利用B 膨胀A,可将B 相对于原点旋转180°得到-B,再利用-B对Ac 进行腐蚀。腐蚀结果的补集便是所求的结果。因为膨胀是利用结构元素对图像补集进行填充,因而它表示对图像外部作滤波处理。而腐蚀则表示对图像内部作滤波处理。腐蚀与膨胀的另一个不同点,是膨胀满足交换律:
![]()
关于膨胀,还有一个等效的方程:
(3.1)
因而,膨胀可以通过相对结构元素的所有点平移输入图像,然后计算其并集得到,因为膨胀满足交换律,方程还可写成:
(3.2)
方程(3.2)对于分析膨胀的性质非常有用。但是,由于要对一幅输入图像的所有点作平移运算,因而计算量很大。与此相对,方程(3.1)仅需对结构元素中的所有点作平移,故运算量要小。
3.3.3.3 开运算
图像B 对A 作开运算,用符号A
B 表示,其定义为:
![]()
为了更好的理解开运算,有下面的等价方程:
![]()
这个方程表明,开运算可以通过计算所有可以填入图像内部结构元素平移的并求得,即对每一个可填入位置作标记,计算结构元素平移到每一个标记位置时的并,便可得到开运算的结果。事实上,这正是先作腐蚀,后膨胀的结果。
3.3.3.4 闭运算
闭运算是开运算的对偶运算,定义为先作膨胀后作腐蚀。利用B 对A 作闭运算,表示为A· B , 其定义为:
![]()
因为闭为开的对偶运算,所以满足以下的关系:
![]()
同时,开也为闭的对偶运算:
![]()
3.4 边缘提取
图像的边缘往往是标明图像中一个物体同另一个物体的分界线,图像边缘对图像识别十分有用。边缘能勾画出目标物体,使观察者一目了然;边缘蕴涵了丰富的内在信息(如方向、阶跃性质、形状等),是图像识别中重要的图像特征之一。从本质上说,图像边缘是图像局部特征不连续性(灰度突变、颜色突变、纹理结构突变等)的反映,它标志着一个区域的终结和另一个区域的开始。边缘提取首先检测出图像局部特征,然后再将这些不连续的边缘像素连成完备的边界。边缘的特征是沿边缘走向的像素变化平缓,而垂直于边缘方向的像素变化剧烈。所以,从这个意义上说,提取边缘的算法就是检测出符合边缘特征的边缘像素的数学算子。
3.4.1 边缘检测算子
边缘检测算子(edge detector)是一组用于在亮度函数中定位变化的非常重要的局部图像预处理方法,边缘是亮度函数发生急剧变化的位置。
微积分学中用导数描述连续函数的变化,图像函数依赖于两个变量,即图像平面的坐标,因此,描述边缘的检测算子使用偏导数。图像函数的变化可以用指向图像函数最大增长方向的梯度来表示。
边缘是赋给单个像素的性质,用图像函数在该像素一个邻域处的特性来计算。他是一个具有幅值(强度)(magnitude)和方向(direction)的矢量(vector variable)。边缘的幅值是梯度的幅值,边缘方向f 是梯度方向y 旋转 -90°的方向。梯度方向是函数最大增长的方向,例如:从黑[ f (i, j) = 0] 到白[ f (i, j) = 255] 。

图3-2 典型的边缘剖面
在图像分析中,边缘一般用于寻找区域的边界。假定区域具有均匀的亮度,其边界就是图像函数变化的位置,因此,在理想情况下具有高边缘幅值的像素中没有噪声。可见边界和其组件(边缘)与梯度方向垂直。
梯度方向(与边缘方向垂直)上的边缘剖面对于边缘具有典型性,图3-2 中给出了几种标准的边缘剖面。屋顶(roof)边缘对于图像中的窄线物体是典型的。边缘检测算子一般是根据某种典型的边缘剖面调制的(tuned)。
梯度的幅值gradg(x, y) 和方向ψ 是按照如下公式计算的连续图像函数:
(3.3)
(3.4)
其中arg(x, y) 是从x 轴到点(x, y) 的角度(单位是弧度)。
有时我们只对边缘幅度有兴趣而不管其方向性,这时可以使用被称为Laplacian 的线性微分算子。Laplacian 是各向同性的,因此对图像中的旋转有不变性。它的定义是:
(3.5)
图像锐化(sharpening)[51]的目标是使边缘陡峭,锐化的图像是供人观察的。锐化的输入图像f 是根据下式从输入图像
得到的:
(3.6)
其中C 是反映锐化强度的正系数, S(i, j) 是图像函数锐化程度的度量,用梯度算子来计算。Laplacian 常被用于这一目的。
图像锐化也可以在频域中进行解释。我们已经知道傅立叶变换的结果是谐波函数的组合。谐波函数sin(nx) 的导数是n cos(nx) ,因此频域越高导数的幅值越大。这是为什么梯度算子增强边缘的另一种解释。
非锐化屏蔽(unsharp masking)是与公式(3.6)类似的图像锐化技术,常应用于印刷行业[52]。一个与非锐化图像(例如,用平滑算子很强地模糊了的图像)成比例的信号被从原始图像中减掉。数字图像在本质上是离散的,因此含有导数的公式(3.3)和公式(3.4)必须用差分(difference)来近似。图像g 在纵向(固定i )和横向(固定j )的一阶差分由下式给出:
(3.7)
其中n 是小整数,通常取1。数值n 的选择既要足够小以便较好地近似导数,又要足够大以便忽略图像函数的不重要的变化。差分的对称表达为:
(3.8)
这种形式并不常用,因为它们忽略了当前像素(i, j) 本身的影响。
梯度算子作为边缘性的度量可以分为三类:
1、使用差分近似图像函数导数的算子。有些是具有旋转不变性的(比如Laplacian),因此只需要一个卷积掩模来计算。其他近似一阶导数的算子使用几个掩模。方向在几个简单模式的最佳匹配基础上来估计。
2、基于图像函数二阶导数过零点的算子(比如Marr-Hildreth 或Canny 边缘检测算子)。
3、试图将图像函与边缘的参数模型相匹配的算子。
边缘检测是有助于高层图像分析的一个极为重要的步骤,因此这仍然是一个活跃的研究领域,新的方法不断出现。最近的例子包括利用模糊逻辑、神经网络、小波的边缘检测算子[53-59]。选择最合适的边缘检测策略是很困难的,有关边缘检测方法及其性能评价的方法可参见文献[60-61]。
检测小局部邻域的单个梯度算子事实上是卷积,可以用卷积掩模来表达。能够检测边缘方向的算子是用一组掩模来表达的,每个对应某个方向。
Roberts 算子
Roberts 算子是最古老的算子之一[63]。由于它只是用当前像素的2ⅹ2 邻域,所以计算非常简单。它的卷积掩模是:

因此边缘的幅值计算如下:
![]()
Roberts 算子的主要缺点是对噪声的高度敏感性,原因在于仅是用了很少几个像素来近似梯度。
Laplace 算子
Laplace 算子
是近似只给出梯度幅值的二阶导数的流行方法。公式(3.5)的Laplacian 在数字图像中用卷积和来近似。通常使用3ⅹ3 的掩模h ,对于4-邻接和8-邻接的邻域分别定义为:

Laplace 算子有一个缺点是它对图像中的某些边缘产生双重响应。
Prewitt 算子
Prewitt 算子,与Sobel, Kirsch, Robinson(稍后讨论)及其他一些算子类似,近似一阶导数,对于3ⅹ3 的卷积掩模,在8 个可能方向上估计梯度,具有最大幅值的卷积给出梯度方向。更大的掩模是可能的。
近似图像函数一阶导数的算子由于具有确定梯度方向的能力,有时被称作罗盘算子(compass operator)。对于每个算子我们只给出前面三个3ⅹ3 掩模,其他的可以通过简单旋转得到。

梯度方向由具有最大响应的掩模给出。对于以下所有的近似一阶导数的算子也都是如此。
Sobel 算子

Sobel 算子通常用于水平和垂直边缘的一个简单检测子,这时使用h1 和 h3 。如果1 h 的响应是y , h3 的响应是x ,则我们可以根据下式得出强度(幅值):
![]()
且方向是tan-1 ( y / x) 。

3.4.2 边缘二阶导数过零点
在20 世纪70 年代,Marr 理论根据神经生物学实验得出了以下结论:物体的边界是将亮度图像与其解释连接起来的最重要的线索。边缘检测技术在当时(如 Kirsch,Sobel, Pratt 算子)是基于很小邻域的卷积,只对特殊的图像效果好。这些边缘检测算子的主要缺点是它们依赖物体的大小且对噪声敏感。
基于二阶导数过零点(zero-crossing)的边缘检测技术(最初的形式是Marr-Hildreth 边缘检测算子[63]),探究了阶跃边缘对应于图像函数陡峭的变化这一事实。图像函数的一阶导数在对应于图像边缘的位置上应该去的极值,因此二阶导数在同一位置应该为0;而寻找过零点位置比起极值来的更容易和更精确。
关键的问题是如何稳定地计算二阶导数。一种可能性是首先平滑图像(减小噪声),再计算二阶导数。在选择平滑滤波器时,需要满足两个标准[63]:第一,滤波器应该是平滑的且在频域中大致上是有限带宽的,以便减少会导致函数变化的可能频率数。第二,空间定位的约束要求滤波器的响应需来自于图像中邻近的点。这两个标准是矛盾的,但是可以通过使用高斯分布同时得到优化。在实践中,需要准确地考虑优化的含义。
2D 高斯平滑算子G(x, y) (也称为高斯滤波器,或简单地称为高斯)由下式给出:
(4.9)
其中x ,y 是图像坐标,
是关联的概率分布的标准差。有时用带有规范化因子的公式来表达:
![]()
标准差
是高斯滤波器的唯一参数,它与滤波器操作邻域的大小成正比。离算子中心越远的像素影响越小,离中心超过3
的像素的影响可以忽略不计。
我们的目标是得到平滑后2D 函数f (x, y) 的二阶导数。前面已经讲过Laplace 算子
给出了二阶导数且是各向同性的。现在我们来考虑高斯平滑后的图像f (x, y) (用卷积*来表达)的Laplacian。有些学者用Laplacian of Gaussian 的缩写LoG 来表示这个算子。
(4.10)
由于所涉及算子的线性性,微分和卷积运算的顺序可以交换:
(4.11)
由于高斯滤波器的导数
与所考虑的图像无关,故它可以事先解析地计算出来。这样复合运算的复杂度就降低了。为了简便起见,我们用替代公式r 2 = x2 + y2 ,其中r 表示离原点的距离,这时可行的,因为2D 高斯是圆形对称的。经过替换,2D 高斯[公式3.9]变为1D 函数,更容易进行微分:
![]()
这样一阶导数G' (r) 是:
![]()
二阶导数G'' (r)

返回到原来的坐标系x, y 并引入一个规范化乘数系数c ,我们就得到LoG 算子的卷积掩模:

其中c 将掩模元素的和规范为0。反过来的LoG 算子由于其形状常被称为墨西哥草帽(Mexicanhat)。
用这种方法寻找二阶导数是很稳定的。高斯平滑有效地抑制了距离当前像素3
范围内的所有像素的影响,这样Laplace 算子就构成了一种反映图像变化的有效而稳定的度量。
在图像与
卷积之后,在卷积后的图像中越过0 水平的位置对应于边缘位置。与经典的小尺度边缘算子相比,这种方法的优点是考虑了围绕当前像素的一个更大的邻域,较远点的影响根据高斯的
减小。在单独的阶跃边缘的理想情况下,
的变化并不影响过零点的位置。
越大卷积掩模变得也越大,例如
=4 时需要约40 像素宽的掩模。幸运的是,
算子存在一个可分离的分解[64],使计算得到可观的加速。
高斯平滑的实际含义是可以可靠地发现边缘。如果只需要全局性的显著边缘,可以增大高斯平滑滤波器的标准差
,使得比较不明显的特征得到抑制。
算子可以非常有效地用掩模的卷积来近似,该掩模是两个具有明显不同
的高斯平滑掩模的差。这种方法被称为高斯差分(difference of Gaussians),缩写为DoG。具有高斯滤波器标准差的正确比率在相关文献中中有讨论[65]。
算子甚至有时还使用更为粗略的近似,即让图像经过两次具有大小不同掩模的平滑算子的滤波。
在实现过零点边缘检测算子时,试图检测算子LoG 或DoG 图像的0 点的努力不可避免地遭遇到失败,而阀值化LoG/DoG 图像和将过零点定义为靠近0 的某个区间的这些简单方法,在最好的情况下只能给出分段部连续的边缘。要想最终得到良好性能的二阶导数边缘检测子,必须实现真正过零点检测子。一个简单检测子可以鉴别2ⅹ2 窗口内的过零点,当两种极性的LoG/DoG 图像数值同时出现在2ⅹ2 窗口内时,就将边缘检测任意赋给一个角点,比如说左上点;当窗口内的数值都是正的或负的时,就不给边缘标签。为了避免在几乎为常量的亮度区域内检测出对应于非显著边缘的过零点,另一个后处理步骤是仅接受在一阶导数边缘检测子上有足够边缘证据的过零点。
有许多改进过零点性能的其他方法[66-67],有些用于预处理[68]或后处理步骤[69]。
传统的二阶导数过零点技术也有缺点。第一、对形状作了过分的平滑,例如,会丢失明显的角点。第二、它有产生环形边缘的倾向(绰号为“意大利式细面条盘子(plate of spaghetti)”效果)。尽管在最初的论文中这一性质被突出出来作为优点,但是在现在的很多应用中已被认为是个缺点。
神经生物学实验[65, 70]提供的证据表明,人眼视网膜以神经节细胞(ganglion cell)的形式实施的操作与
的极为相似。每个细胞对在称之为其感受野(receptive field)的局部邻域内的光线刺激产生响应,感受野具有两个互补类型的围绕中心组织,它们是中心外(off-center)和中心上(on-center)。当出现一个光线刺激时,中心上细胞的活动增加,而中心外细胞的活动被禁止。视网膜对图像的操作可以分析性地描述为图像与
算子的卷积。
3.4.3 Canny 边缘检测
Canny 提出了一种新的边缘检测方法[71-73],它对受白噪声影响的阶跃型边缘是最优的。Canny 检测子的最优性与以下的三个标准有关:
1、检测标准:不丢失重要的边缘,不应有虚假的边缘;
2、定为标准:实际边缘与检测到的边缘位置之间的偏差最小;
3、单响应标准:将多个响应降低为单个边缘响应。这一点被第一个标准部分覆盖了,因为当
有两个响应对应于单个边缘时,其中之一应该被认为是虚假的。这第三个标准解决受噪声影响的边缘问题,起抵制非平滑边缘检测子的作用[74]。
Canny 推导出新的检测算子是基于如下的几个概念:
1、 边缘检测子是针对1D 信号和前两个最优标准表达的,用微积分方法可以得到最完整的解;
2、 如果加上第三个标准(多响应),需要通过数值优化的办法得到最优解。该最优滤波器可以有效地近似为标准差
的高斯平滑滤波器的一阶微分[73],其误差小于20%,这是为了便于实现。这与Marr-Hildreth 边缘检测子很相似[63],它是基于Laplacian of a Gaussian 的。
3、 然后将边缘检测算子推广到两维情况。阶跃边缘由位置、方向和可能的幅度(强度)来确定。可以证明将图像与一对称的2D 高斯做卷积后再沿梯度方向(与边缘方向垂直)微分,就构成了一个简单而有效的方向算子(回想一下,Marr-Hildreth 过零点算子并不能提供边缘方向信息,因为它是用了Laplacian 滤波器)。
假设G 是2D 高斯[公式3.9],我们想将图像与算子Gn 做卷积,Gn 是G 沿n 方向的一阶方向导数。
(3.12)
方向n 应与边缘垂直。尽管该方向事先不知道,但是基于平滑梯度方向的一个可靠的估计是可以得到的。如果f 是图像,边缘的法向n 可以按下式估计:
(3.13)
边缘位于Gn与图像f 卷积在n 方向上的局部最大值位置处:
(3.14)
将公式(3.14)的Gn 用(4.12)代入,得到:
(3.15)
公式(3.15)表明如何在与边缘垂直的方向上寻找局部最大值,该算子常称为非最大抑制(non-maximun suppression)。
由于在公式(3.15)中卷积和微分是满足结合律的运算,故我们可以首先将图像f 与一对称的高斯G 做卷积,再利用根据公式(4.13)计算出来的方向n 的估计值,计算二阶方向导数。边缘的强度(图像亮度函数f 的梯度幅值)按下式计算:
![]()
4、由于噪声引起的对单个边缘的虚假响应通常造成所谓的“纹状(streaking)”问题。一般而言,该问题在边缘检测中是非常普遍的。边缘检测子的输出通常要做阀值化处理,以确定那些边缘是突出的。纹状实质边缘轮廓断开的情形,是由算子输出超出或低于阀值的波动引起的。纹状现象可以通过滞后阀值化处理(thresholding with hysteresis)来消除。如果边缘响应超过一高阀值(highthreshold)时,这些像素点构成了某个尺度下的边缘检测子的确定的输出。个别的弱响应通常对应于噪声,但是如果这些点是与某些具有强响应的点连接时,它们很可能是图像中真实的边缘。这些连接的像素点在当其响应超过一低阀值(low threshold)时,就被当作边缘像素。这里的低阀值和高阀值需要根据对信噪比的估计来确定[73]。
5、算子的合适尺度取决于图像中所含的物体情况。解决该未知数的方法是使用多个尺度,将所得信息收集起来。不同尺度的Canny 检测子由高斯的不同标准差
来表示。有可能存在几个尺度的算子对边缘都给出突出的响应(即信噪比超过阀值),在这种情况下,选择具有最小尺度的算子,因为它的定位是最准确的。
Canny 提出了特征综合(feature synthesis)方法。首先标记出所有由最小尺度算子得到的突出边缘。假定具有较大尺度
的算子的边缘根据它们合成得到(即根据从较小的尺度
收集到的证据来预测较大尺度
应具有的作用效果)。然后将合成得到的边缘响应与较大尺度
的实际边缘响应做比较。仅当它们比通过合成预测的响应显著的强时,才将其标记为边缘。
这一过程可以对一个尺度序列重复进行,通过不断加入较小尺度中没有的边缘点的方式累积起来生成边缘图。
Canny 边缘检测子:
1、将图像f 与尺度为s 的高斯函数做卷积;
2、对图像中的每个像素,用公式(4.13)估计局部边缘的法向n;
3、用公式(4.15) (non-maximun suppression)找到边缘的位置;
4、用公式(4.16)计算边缘强度;
5、对边缘图像做滞后阀值化处理,消除虚假响应。
6、对于递增的标准差
,重复(1)到(5)步骤;
7、用特征综合方法,收集来自多尺度的最终的边缘信息。
Canny 检测子构成了边缘检测技术的一种复杂的但却是主要的贡献。Canny 检测子的完整实现很少见,通常省略了特征综合,即只有算法的(1)~(5)步。
最优边缘检测概念的最新发展关注于比阶跃和斜坡型边缘更为一般的边缘的最优检测问题,而阶跃和斜坡型边缘原本是Canny 和其它早期方法考虑的问题。


