system: [SYSTEM]

user: 3. 改进算法 传统数学形态学方法用于图像边缘检测是对一幅图像利用单一结构元素，这样得到的边缘通常色调暗、有断带，还会造成部分边缘信息的损失、遗漏，而且不能用于复杂形状的图像 [ 12 ]。这里将融合方形结构与线性结构元素各自的优势，一方面是实现全方位、高精准地检测图像边缘，另一方面可以更好地抑制噪声的影响。 3.1. 多方向 线性结构元素是有多个方向的，图1表示0˚、45˚、90˚和135˚四个方向的3 × 3线性结构元素。 图1. 4个方向的3 × 3结构元素 当使用0˚方向结构元素进行边缘检测时，能够提取出垂直方向上的边缘信息，而接近水平方向的边缘细节会被遗漏；同样，当利用90˚方向结构元素时，水平方向上的边缘可以检测出来，但是垂直方向上的边缘细节同样丢失；这样，采用45˚和135˚方向结构元素检测也有类似情况。如果线性结构元素的方向与待检测边缘为垂直状态时，可以达到最佳匹配 [ 13 ]。所以进行边缘检测时，使用线性结构元素必须考虑多个方向，避免丢失一些边缘信息。而图像的边缘实质上是图像中像素值发生突变的像素点的集合，也就是说位于图像边缘上的像素点的像素值会发生突变，某个方向上的梯度值会明显大于其它三个方向的梯度值 [ 14 ]。综合利用以上四个方向的边缘信息，可以提取出全方位多角度的边缘细节。具体过程中需要求以下几个关键量： 1) 灰度距离 图2中的 p 1 ， ⋯ ， p 9 为3 × 3的图像子块的像素值，灰度距离 d a = | p a − p 1 | ( a = 2 ， 3 ， ⋯ ， 9 ) 。灰度距离反映了子块中心像素点与其邻域像素点之间的差异，差异越大表示像素点之间变化程度越剧烈，该像素点作为边缘点的概率越大。 图2. 3 × 3图像子块 2) 边缘马氏灰度距离 设中心点p 1 处的坐标为 ( x ， y ) ，根据上面的灰度距离，可以计算中心点 ( x ， y ) 处的边缘马氏灰度距离： D 1 ( x ， y ) = d 3 + d 4 + d 5 + d 7 + d 8 + d 9 ， D 2 ( x ， y ) = d 4 + d 5 + d 6 + d 2 + d 8 + d 9 ， D 3 ( x ， y ) = d 5 + d 6 + d 7 + d 2 + d 3 + d 9 ， D 4 ( x ， y ) = d 2 + d 3 + d 4 + d 6 + d 7 + d 8 (1) 其中，D 1 、D 2 、D 3 、D 4 分别对应0˚、45˚、90˚、135˚四个方向上的边缘情况。 那么，对于一幅大小为M × N的图像来说，可以通过下式来计算图像在4个不同方向上的边缘马氏灰度距离： E D k = ∑ x = 2 M − 1 ∑ y = 2 N − 1 D k ( x ， y )     ( k = 1 ， 2 ， 3 ， 4 ) (2) 同理，ED 1 、ED 2 、ED 3 、ED 4 分别代表为0˚、45˚、90˚、135˚方向上的边缘马氏灰度距离。 3) 各方向结构元素权值的计算 令 E D = ∑ k = 1 4 E D k ，可以计算出在0˚、45˚、90˚、135˚四个方向上的结构元权值 α 1 ， α 2 ， α 3 ， α 4 ： α 1 = E D 3 E D ，     α 2 = E D 4 E D ，     α 3 = E D 1 E D ，     α 4 = E D 2 E D (3) 通过上式计算出最佳结构元素，可以减少大量不必要的计算，加快了检测速度，提高了算法的效率，检测出的边缘图像效果更好 [ 15 ]。 3.2. 多尺度 同时，注意到大尺寸结构元素的抗噪特性好，可以用来抑制噪声；小尺度结构元素的边缘定位特性好，可以获得准确的边缘位置。多种尺度的结构元素结合起来，一起作用于图像，抑制噪声的同时可以获得非常好的边缘信息 [ 16 ]。 方形结构元素(元素全为1)对边缘细节的提取要优于线性，尤其当方形结构元素尺寸为3 × 3时，对边缘的检测最准确精细。因为标准差反映的是像素值与均值的离散程度，可以说标准差越大，图像的质量就越好 [ 17 ]。其中标准差的计算公式如下： μ = ∑ x = 1 M ∑ y = 1 N f ( x ， y ) N × M (4) σ = 1 M × N ∑ x = 1 M ∑ y = 1 N ( f ( x ， y ) − μ ) 2 (5) 其中，M × N表示图像的大小， f ( x ， y ) 表示第x行、第y列的像素值， μ 表示均值。 因此尺度权重就可以围绕标准差来计算，利用不同尺度下边缘图像的标准差来计算不同尺度的权重，最后加权平均求得最终的边缘图像，效果不错。具体步骤如下： 1) 依次求出各尺度下的图像边缘E i ； 2) 然后计算各边缘图像的标准差 σ i ； 3) 则不同尺度结构元素的权重为： ω i = σ i / ∑ σ i (6) 4) 最终取得的边缘图像为： E = ∑ ω i E i (7) 3.3. 多尺度与多方向融合 线性结构元素在抑制噪声方面要强于方形结构元素，方形结构元素的尺度和形状都会影响图像边缘检测的效果。这里将运用多尺度与多方向融合的思想，来进一步改进边缘检测的效果。 对于线性结构元素，设i (i = 1， 2， 3， 4)代表尺度的大小，当i=1时，表示结构元素的尺度大小为3 × 3；当i = 2时，表示结构元素的尺度大小为5 × 5；当i = 3时，表示结构元素的尺度大小为7 × 7；当i = 4时，表示结构元素的尺度大小为9 × 9。同样用j (j = 1， 2， 3， 4)表示结构元素的方向，当j = 1时，表示结构元素的方向是0˚；当j = 2时，表示结构元素的方向是45˚；当j = 3时，表示结构元素的方向是90˚；当j = 4时，表示结构元素的方向是135˚。那么b i，j 就可以用来代表不同尺度不同方向的结构元素。例如，b 1，1 表示方向为0˚的尺度为3 × 3线性结构元素。 其中，MATLAB中创建结构元素的方式可以用strel命令，具体函数为：strel (‘shape’， parameters)，其中shape为形状参数；parameters为与结构元素相关的大小或方向的参数。例如建立一个45˚，尺寸为5 × 5的线性结构元素b 2，2 ：b 2，2 = strel (‘line’， 5， 45)。 通过上面分别对多尺度和多方向结构元素的选择以及权重确定的探讨，提出一种基于数学形态学方法的多尺度多方向图像边缘检测算法，具体步骤如下： (I) 对于噪声图像，可通过中值滤波与高斯滤波结合的方法进行去噪预处理。然而对于无噪声图像，则无需执行此步骤； (II) 综合考虑除噪和边缘提取的效果，选用相对来说最有优势的抗噪腐蚀型算子： E = f ∘ b − f Θ b (f为待检测图像；b为线性结构元素)。即对于i尺度，j方向的线性结构元素，提取到的图像边缘为 E i ， j = f ∘ b i ， j − f Θ b i ， j ； (III) 分别计算在0˚、45˚、90˚、135˚四个方向上的权值 α 1 ， α 2 ， α 3 ， α 4 ； (IV) 分别对每一尺度的线性结构元素在不同方向进行加权求和： E i = ∑ α j E i ， j ，得到线性结构元素在4个不同尺度的边缘图像。 而对于3 × 3的方形结构元素，通过多种算子对边缘提取的效果进行对比，发现腐蚀型算子对边缘的提取最为全面，因此方形结构元素提取的边缘图像为： E i = f − f Θ b i (此式中I = 5，b 5 为3 × 3的方形结构元素)。 (V) 根据 E i ( i = 1 ， 2 ， 3 ， 4 ， 5 ) 来计算标准差 σ i ； (VI) 计算结构元素各个尺度的权值 ω i = σ i / ∑ σ i ，得到最终的边缘图像 E = ∑ ω i E i 。