边缘检测算法在医学超声液性病变图像中的应用
1.1.3 Prewitt算子
Prewitt和Sobel算子都是使用3×3模板的一阶微分算子,它们是在研究曲面拟合的基础上提出的。拟合是指已知某连续函数的一系列离散函数值,通过最小二乘法等准则来确定该函数中的待定系数。Prewitt和Sobel算子的2个差分模板的系数之间的区别仅在于求平均的方法不同。随后出现的Kirseh算子用不等权的8个3×3循环平均梯度算子分别与图像进行卷积,取其中的最大值输出,它可以检测各个方向上的边缘,减少了由于平均而造成的细节丢失,但同时增加了计算量。
1.2 基于二阶微分的边缘检测算法
前面讨论了基于一阶微分的边缘检测,如果所求的一阶微分高于某一阈值,则确定该点为边缘点。一阶微分组成的梯度是一种矢量,不但有大小还有方向,和标量比较,数据存储量比较大。一种更好的方法就是求梯度局部最大值对应的点,并认定它们是边缘点,通过去除一阶微分中的非局部最大值,可以检测出更精确的边缘。一阶微分的局部最大值对应着二阶微分的零交叉点,这意味着在边缘点处有一阶微分的峰值,同样地,有二阶微分的零交叉点。这样,通过找图像强度的二阶微分的零交叉点就能找到边缘点。
在二维空间,对应二阶微分有两种算子:Laplace算子和Marr算子。Laplace算子也称拉氏算子,它的特点是具有旋转对称性而不具备方向性,只需要一个3×3模板。Laplaee算子是对二维函数进行运算的二阶导数算子,与方向无关,对取向不敏感,因而计算量要小。根据边缘的特性,Laplace算子可以作为边缘提取算子,计算数字图像的Laplaee值可以借助模板实现,但是它对噪声相当敏感,它相当于高通滤波,常会出现一些虚假边缘。由于Laplace算子存在着诸多缺陷,它一般并不直接应用于边缘检测,而是结合其它方法以提高边缘的定位精度。而Marr算子就是在Laplace算子基础上改进,由于它使用的是高斯型的Laplace模板,因此又被称作LOG算子,先对图像用Gauss函数进行平滑,然后利用Laplace算子对平滑的图像求二阶导数后得到的零交叉点作为待选边缘。LOG算子就是对图像进行滤波和微分的过程,是利用旋转对称的LOG模板与图像做卷积,确定滤波器输出的零交叉位置。
1.3 Canny算子
Canny算子是最常用的边缘检测方法之一,是一个具有滤波、增强和检测的多阶段的优化算子。
该算法的基本过程如图1所示。本文引用地址:http://www.amcfsurvey.com/article/193780.htm
Canny算子检测边缘的实质是求信号函数的极大值问题来判定图像边缘像素点。基本步骤为:
(1)用高斯滤波器平滑图像;
(2)用一阶偏导的有限差分来计算梯度的幅值和方向;
(3)对梯度幅值进行非极大值抑制;
(4)用双阈值算法检测和连接边缘。Canny算子能够得到连续完整的图像,但需要注意的问题是:Gauss滤波的尺度,以及双阈值的选择。
1.4 基于Snake模型的边缘检测算法
Snake模型是1987年由Kass提出的,它的基本思想是以构成一定形状的控制曲线为模板(或者称为轮廓线),通过模板自身的弹性形变与图像局部特征相匹配达到调和,即某种能量函数极小化,完成对图像边缘的提取,通过对模板的进一步分析而实现图像的理解和识别。能量最小化模型已经有了很长的发展历史,Kass对其进行了改进,采用动态调整的方法来实现它,对图像的高层信息进行分析和提取而不至于受到太多低层信息的影响。通过在原始的最小化函数中加入外力因子,可以引导初始化的轮廓线朝着特定的方向前进,最后达到提取目标边界的目的。
1.4.1 基本Snake模型
Kass等提出的基本Snake模型由一组控制点组成,即v(s)=(x(s),y(s)),s∈[0,1],其中x(s)和y(s)分别表示每个控制点在图像中的坐标位置,s是以傅立叶变换形式描述边界的自变量。其对应的能量函数定义为:
式中:Eint为曲线的内部能量;Eext为外部能量。
内部能量定义为:
式中|vs(s)|为弹性能量,是曲线相对于弧长的一阶导数的模,受弹性系数的调节,控制着曲线的张力。|vss(s)|是弯曲能量,是曲线相对于弧长的二阶导数的模,受刚性系数的调节,控制曲线的变形程度。
对于普通的灰度图像I(x,y),典型的外部能量(外部力)表达有如下2种定义:
式中为梯度算子,是方差为σ的二维高斯函数。在图像边缘区域,图像灰度值的梯度往往较大,取反后计算以满足能量最小的要求。
评论