几种边缘检测算子的比较Roberts,Sobel,Prewitt,LOG,Canny
边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。这些包括:深度上的不连续、表面方向不连续、物质属性变化和场景照明变化。 边缘检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域。图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。有许多方法用于边缘检测,它们的绝大部分可以划分为两类:基于查找一类和基于零穿越的一类。基于查找的方法通过寻找图像一阶导数中的最大和最小来检测边界,通常是将边界定位在梯度最大的方向。基于零穿越的方法通过寻找图像二阶导数零穿越来寻找边界,通常是Laplacian过零点或者非线性差分表示的过零点。
人类视觉系统认识目标的过程分为两步:首先,把图像边缘与背景分离出来;然后,才能知觉到图像的细节,辨认出图像的轮廓。计算机视觉正是模仿人类视觉的这个过程。因此在检测物体边缘时,先对其轮廓点进行粗略检测,然后通过链接规则把原来检测到的轮廓点连接起来,同时也检测和连接遗漏的边界点及去除虚假的边界点。图像的边缘是图像的重要特征,是计算机视觉、模式识别等的基础,因此边缘检测是图象处理中一个重要的环节。然而,边缘检测又是图象处理中的一个难题,由于实际景物图像的边缘往往是各种类型的边缘及它们模糊化后结果的组合,且实际图像信号存在着噪声。噪声和边缘都属于高频信号,很难用频带做取舍。
这就需要边缘检测来进行解决的问题了。边缘检测的基本方法有很多,一阶的有Roberts Cross算子,Prewitt算子,Sobel算子,Canny算子,Krisch算子,罗盘算子;而二阶的还有Marr-Hildreth,在梯度方向的二阶导数过零点。现在就来简单介绍一下各种算子的算法
Roberts算子是一种利用局部差分算子寻找边缘的算子,它有下式给出:
其中分别为4领域的坐标,且是具有整数像素坐标的输人图像;其中的平方根运算使得该处理类于人类视觉系统中发生的过程。
Roberts算子是2X2算子模板。图1所示的2个卷积核形成了Roberts算子。图象中的每一个点都用这2个核做卷积。
Sobel算子
Sobel算子是一种一阶微分算子,它利用像素邻近区域的梯度来计算1个像素的梯度,然后根据一定的绝对来取舍。它由下式给出:
Sobel算子是3*3算子模板。图2所示的2个卷积核dx 、 dy形成Sobel算子。一个核对通常的垂直边缘响应最大,而另一个核对水平边缘响应最大。2个卷积的最大作为该点的输出。运算结果是一幅边缘幅度图像。
Prewitt算子
Prewitt算子由下式给出:
Prewitt算子是3*3算子模板。图3所示的2个卷积核dx ,不要形成了Prewitt算子。与Sobel算子的方法一样,图像中的每个点都用这2个核进行卷积,取最大作为输出。Prewitt算子也产生一幅边缘幅度图像。
LOG滤波器又称Marr-Hildreth模板或算子
式中:G(x,y)是对图像进行处理时选用的平滑函数(Gaussian函数);x,y为整数坐标; σ为高斯分布的均方差。对平滑后的图像fs(fs=f(x,y)*G(x,y))做拉普拉斯变换,得:
即先对图象平滑,后拉氏变换求二阶微分,等效于把拉氏变化作用于平滑函数,得到1个兼有平滑和二阶微分作用的模板,再与原来的图像进行卷积。canny算子边缘检测
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-37357-1.html