APP下载

联合K-means和形态学算子的图像边缘检测

2019-08-05王益艳

舰船电子工程 2019年7期
关键词:形态学算子灰度

王益艳 于 贵

(1.四川文理学院智能制造学院 达州 635000)(2.达州智能制造产业技术研究院 达州 635000)

1 引言

边缘是图像的最基本特征,边缘检测时图像分析和模式识别的主要特征提取手段,直接决定着后续处理的精度与结果[1]。传统的图像边缘检测是基于掩模的方法,包括基于一阶导数和基于二阶导数两类,一阶边缘检测算子有Roberts、Sobel、Prewitt、Krisch等[2],二阶边缘检测算子包括Log、Canny等[3]。这些基于导数的检测算子对噪声比较敏感,常常会在检测边缘的同时加强噪声。小波变换具有良好的局域化特性,它是检测边缘很好的工具,可实现多尺度边缘特征提取[4~5]。但是,在受噪声感染的状况下,该方法对边缘检测效果不理想。近年来,基于数学形态学的方法被广泛应用于图像边缘检测[6],该方法比传统方法具有更好的连续性和方向性[7]。然而,传统数学形态学检测算法主要根据形态学梯度信息提取边缘,由于没有考虑边缘的方向,导致图像出现边缘多像素宽。为此,人们提出了各种改进的多尺度形态学边缘检测算法[8~9],在一定程度上提高了边缘检测效果,但该类方法中结构元素的选取对最终检测结果影响较大。为有效提高边缘检测的精度,本文提出了一种联合K-means和形态学算子的图像边缘检测。首先通过K-means算法[10]对图像进行分割,再对分割后的图像求反,然后利用形态学作腐蚀操作,挖去图像内部像素点,最后利用分割图像减去形态学腐蚀后的图像获得图像边缘。仿真结果表明,该方法具有较好的边缘提取性能,比传统Sobel算子、Canny算子、小波变换等方法具有更高的检测精度。

2 K-means算法原理

K-means算法是一种聚类算法[11],它是将各个聚类子集内的所有数据样本的均值作为该聚类的代表点,算法的主要思想是通过迭代过程把数据集划分为不同的类别,使得评价聚类性能的准则函数达到最优,从而使生成的每个聚类内紧凑、类间独立。

1)选定某种距离作为数据样本间的相似性度量

K-means聚类算法在计算数据样本之间的距离时,可以根据实际需要选择欧式距离、曼哈顿距离或者马氏距离中的一种来作为算法的相似性度量[12],其中最常用的是欧式距离。其实现过程如下。

2)选择评价聚类性能的准则函数

K-means聚类算法使用误差平方和准则函数来评价聚类性能。给定数据集X,其中只包含描述属性,不包含类别属性。假设X包含K个聚类子集 X1,X2,...,XK;各个聚类子集中的样本数量分别为 n1,n2,...,nK;各个聚类子集的均值代表点(也称聚类中心)分别为 m1,m2,...,mK。则误差平方和准则函数公式为

3)相似度的计算根据一个簇中对象的平均值来进行。

(1)将所有对象随机分配到k个非空的簇中。

(2)计算每个簇的平均值,并用该平均值代表相应的簇。

根据参考文献,患者留置尿管拔除前干扰膀胱收缩导致拔管后排尿困难的影响因素复杂,需要确认患者拔管后膀胱功能恢复情况,临床多通过间歇夹闭导管训练膀胱功能判断膀胱功能是否恢复良好,但目前尚无明确的医学循证。

(3)根据每个对象与各个簇中心的距离,分配给最近的簇。

(4)然后转(2),重新计算每个簇的平均值。这个过程不断重复直到满足某个准则函数才停止。

整个K-means算法流程如图1所示。

图1 K-means算法流程图

3 本文方法

本文提出了一种基于K-means算法的形态学边缘检测方法。其实现步骤如下:

1)首先通过上一小节介绍的K-means算法对原始图像I进行分割,得到分割图像J。

2)再对分割后的图像J求反,得到K。求反公式如下:

令 K(x,y)表示输入图像,B(i,j)表示结构元(函数),则形态学腐蚀[7]可定义为

W=(KΘB)(x,y)=

式中,DK和DB分别是函数K和B的定义域,位移参数(x+i,y+j)必须包含在函数K的定义域内。灰度图像的腐蚀可以得到两种结果:如果所有的结构元素都为正,则输出图像将趋于比输入图像暗;在比结构元素还小的区域中的明亮经腐蚀处理后其效果将减弱,减弱的程度取决于环绕亮度区域的灰度值以及结构元素本身的形状和幅值。

腐蚀运算是一个点一个点地进行的,某点的运算结果是它在一个局部范围内的点与结构元素中与之对应的点的灰度值之差,选取其中的最小值。可见,经腐蚀运算后,边缘部位灰度值相对大的点的灰度值会降低,从而边缘会向灰度值高于相邻区域的区域内收缩。

4)最后利用分割图像J减去形态学腐蚀后的图像W获得图像边缘S。

4 实验结果及分析

为对本文算法进行有效验证,本文采用标准的“woman”和“Logo”图像作为测试对象,以 Matlab R2015b为测试平台,计算机配置为Windows7系统、AMDA8处理器、主频1.60GHz、4G内存,分别进行了两组试验。

实验一:利用K-means算法对测试图像进行分割,实验结果如图2所示。

图2 K-means算法分割结果

实验二:将本文方法与传统Sobel算子[2]、Canny算子[3]、小波变换[6]等方法进行对比实验。图3~4给出了边缘检测视觉效果。

图2结果显示,K-means算法能有效实现对图像的分割,为本文后面的边缘检测奠定了良好的基础。图3和图4实验结果显示,传统Sobel算子检测精度较差,部分边缘细节没有检测到,而Canny算子和小波方法存在明显的伪边缘和边缘断裂现象,而本文方法检测的边缘检测精度高,边缘连接完整,视觉效果更好。

图3 woman图像边缘检测结果

图4 Logo图像边缘检测结果

5 结语

本文结合K-means算法和形态学腐蚀运算,提出了一种新的边缘检测方法。该方法能有效获得精确而完整的图像边缘,比传统其他几种方法具有更优的视觉效果,为后续的图像识别奠定了基础。

猜你喜欢

形态学算子灰度
采用改进导重法的拓扑结构灰度单元过滤技术
临床检验中血细胞形态学观察与分析
音乐科学研究中的思想实验——以音乐形态学研究中的四个重大发现为例
有界线性算子及其函数的(R)性质
颅内后交通动脉瘤破裂出血的临床特征和形态学的危险因素
天津港智慧工作平台灰度发布系统和流程设计
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
Domestication or Foreignization:A Cultural Choice
Arduino小车巡线程序的灰度阈值优化方案
QK空间上的叠加算子