数字图像处理几种边缘检测算子的比较
数字图像处理实验报告——图像分割实验

实验报告课程名称数字图像处理导论专业班级_______________姓名 _______________学号_______________电气与信息学院与谐勤奋求就是创新一.实验目得1.理解图像分割得基本概念;2.理解图像边缘提取得基本概念;3.掌握进行边缘提取得基本方法;4.掌握用阈值法进行图像分割得基本方法.二。
实验内容1.分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。
比较三种算子处理得不同之处;2.设计一个检测图1中边缘得程序,要求结果类似图2,并附原理说明。
3.任选一种阈值法进行图像分割、图1 图2三.实验具体实现1.分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。
比较三种算子处理得不同之处;I=imread(’mri、tif');imshow(I)BW1=edge(I,’roberts’);figure ,imshow(BW1),title(’用Roberts算子’)BW2=edge(I,’sobel’);figure,imshow(BW2),title(’用Sobel算子 ')BW3=edge(I,’log’);figure,imshow(BW3),title(’用拉普拉斯高斯算子’)比较提取边缘得效果可以瞧出,sober算子就是一种微分算子,对边缘得定位较精确,但就是会漏去一些边缘细节.而Laplacian—Gaussian算子就是一种二阶边缘检测方法,它通过寻找图象灰度值中二阶过零点来检测边缘并将边缘提取出来,边缘得细节比较丰富。
通过比较可以瞧出Laplacian-Gaussian算子比sober算子边缘更完整,效果更好。
2.设计一个检测图1中边缘得程序,要求结果类似图2,并附原理说明.i=imread('m83、tif’);subplot(1,2,1);imhist(i);title('原始图像直方图');thread=130/255;subplot(1,2,2);i3=im2bw(i,thread);imshow(i3);title('分割结果’);3.任选一种阈值法进行图像分割、i=imread('trees、tif’);subplot(1,2,1);imhist(i);title('原始图像直方图’);thread=100/255;subplot(1,2,2);i3=im2bw(i,thread);imshow(i3);title('分割结果’)1、分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。
基于Matlab的图像边缘检测算法的实现及应用汇总

目录摘要 (1)引言 (2)第一章绪论 (3)1.1 课程设计选题的背景及意义 (3)1.2 图像边缘检测的发展现状 (4)第二章边缘检测的基本原理 (5)2.1 基于一阶导数的边缘检测 (8)2.2 基于二阶导的边缘检测 (9)第三章边缘检测算子 (10)3.1 Canny算子 (10)3.2 Roberts梯度算子 (11)3.3 Prewitt算子 (12)3.4 Sobel算子 (13)3.5 Log算子 (14)第四章MATLAB简介 (15)4.1 基本功能 (15)4.2 应用领域 (16)第五章编程和调试 (17)5.1 edge函数 (17)5.2 边缘检测的编程实现 (17)第六章总结与体会 (20)参考文献 (21)摘要边缘是图像最基本的特征,包含图像中用于识别的有用信息,边缘检测是数字图像处理中基础而又重要的内容。
该课程设计具体考察了5种经典常用的边缘检测算子,并运用Matlab进行图像处理结果比较。
梯度算子简单有效,LOG 算法和Canny 边缘检测器能产生较细的边缘。
边缘检测的目的是标识数字图像中灰度变化明显的点,而导函数正好能反映图像灰度变化的显著程度,因而许多方法利用导数来检测边缘。
在分析其算法思想和流程的基础上,利用MATLAB对这5种算法进行了仿真实验,分析了各自的性能和算法特点,比较边缘检测效果并给出了各自的适用范围。
关键词:边缘检测;图像处理;MATLAB仿真引言边缘检测在图像处理系统中占有重要的作用,其效果直接影响着后续图像处理效果的好坏。
许多数字图像处理直接或间接地依靠边缘检测算法的性能,并且在模式识别、机器人视觉、图像分割、特征提取、图像压缩等方面都把边缘检测作为最基本的工具。
但实际图像中的边缘往往是各种类型的边缘以及它们模糊化后结果的组合,并且在实际图像中存在着不同程度的噪声,各种类型的图像边缘检测算法不断涌现。
早在1965 年就有人提出边缘检测算子,边缘检测的传统方法包括Kirsch,Prewitt,Sobel,Roberts,Robins,Mar-Hildreth 边缘检测方法以及Laplacian-Gaussian(LOG)算子方法和Canny 最优算子方法等。
图像处理中的边缘检测算法分析与优化

图像处理中的边缘检测算法分析与优化随着数字图像处理技术的不断发展,边缘检测在计算机视觉、模式识别和图像分割等领域中扮演着重要的角色。
边缘是图像中灰度变化较大的区域,通过检测边缘,我们可以提取图像的形状和结构信息,从而实现图像分析和理解。
本文将对常用的图像处理边缘检测算法进行分析,并探讨优化策略。
一、边缘检测算法概述1.1 Sobel算法Sobel算法是一种基于梯度的边缘检测算法,它通过计算图像梯度的大小和方向来确定边缘位置。
Sobel算法具有计算简单、鲁棒性较高的优点,但对噪声比较敏感,在图像边缘不够明显或存在噪声时容易引入误检。
1.2 Canny算法Canny算法是一种经典的边缘检测算法,它通过多个步骤来实现高效的边缘检测。
首先,通过高斯滤波器对图像进行平滑处理,以减少噪声的影响。
然后,计算图像的梯度幅值和方向,并进行非极大值抑制,以精确地定位边缘。
最后,通过滞后阈值法来进行边缘的连接和细化。
Canny算法具有良好的边缘定位能力和抗噪能力,在实际应用中被广泛使用。
1.3 Laplacian算子Laplacian算子是一种基于二阶导数的边缘检测算子,它通过计算图像的二阶导数来检测图像中的边缘。
Laplacian算子具有对灰度变化较大的边缘敏感的优点,但对噪声比较敏感,容易产生边缘断裂和误检。
为了提高Laplacian算子的效果,常常与高斯滤波器结合使用,以减少噪声的干扰。
二、边缘检测算法优化2.1 参数选择在边缘检测算法中,参数的选择对于最终的结果具有重要的影响。
例如,对于Canny算法来说,高斯滤波器的大小和标准差的选择直接影响到边缘的平滑程度和定位精度。
因此,在优化边缘检测算法时,需要根据具体的应用场景和图像特点选择合适的参数。
2.2 非极大值抑制非极大值抑制是Canny算法中的一种重要步骤,用于精确地定位边缘位置。
然而,在进行非极大值抑制时,会产生边缘断裂和不连续的问题。
为了解决这个问题,可以考虑使用像素邻域信息进行插值,从而减少边缘的断裂,并得到更连续的边缘。
LOG与Canny边缘检测比较

几种常用边缘检测算法的比较

几种常用边缘检测算法的比较边缘检测是在数字图像上寻找图像亮度变化的过程,它对于图像处理和计算机视觉任务非常重要。
常见的边缘检测算法有Sobel算子、Prewitt算子、Roberts算子和Canny边缘检测算法。
本文将对这几种算法进行比较。
1. Sobel算子:Sobel算子是一种常见的边缘检测算法,它通过计算图像像素点与其邻域像素点之间的差异来检测边缘。
Sobel算子具有简单、快速的优点,可以检测水平和垂直方向的边缘,但对于斜向边缘检测效果较差。
2. Prewitt算子:Prewitt算子也是一种常用的边缘检测算法,它类似于Sobel算子,通过计算图像像素点与其邻域像素点之间的差异来检测边缘。
Prewitt算子可以检测水平、垂直和斜向边缘,但对于斜向边缘的检测结果可能不够精确。
3. Roberts算子:Roberts算子是一种简单的边缘检测算法,它通过计算图像像素点与其对角线方向上的邻域像素点之间的差异来检测边缘。
Roberts算子计算简单,但对于噪声敏感,容易产生干扰边缘。
4. Canny边缘检测算法:Canny边缘检测算法是一种经典的边缘检测算法,它包含多个步骤:高斯滤波、计算梯度、非最大抑制和双阈值处理。
Canny算法具有良好的边缘定位能力,并且对于噪声和细节边缘具有较好的抑制效果。
但Canny算法计算复杂度较高,在处理大规模图像时可能较慢。
综上所述,不同的边缘检测算法具有各自的优缺点。
若要选择适合应用的算法,需要综合考虑图像特点、计算复杂度和应用需求等因素。
如果对图像边缘的方向要求不高,可以选择Sobel或Prewitt算子;如果对图像边缘的方向要求较高,可以选择Canny算法。
另外,为了获得更好的边缘检测结果,通常需要进行适当的预处理,如灰度化、滤波和阈值处理等。
最后,对于不同的应用场景,可能需要使用不同的算法或算法组合来满足特定需求。
拉普拉斯算子、prewitt算子、sobel算子对图像锐化处理

《数字图像处理作业》图像的锐化处理---拉普拉斯算子、prewitt算子、sobel算子性能研究对比一、算法介绍1.1图像锐化的概念在图像增强过程中,通常利用各类图像平滑算法消除噪声,图像的常见噪声主要有加性噪声、乘性噪声和量化噪声等。
一般来说,图像的能量主要集中在其低频部分,噪声所在的频段主要在高频段,同时图像边缘信息也主要集中在其高频部分。
这将导致原始图像在平滑处理之后,图像边缘和图像轮廓模糊的情况出现。
为了减少这类不利效果的影响,就需要利用图像锐化技术,使图像的边缘变得清晰。
图像锐化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变得清晰,经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可以对其进行逆运算(如微分运算)就可以使图像变得清晰。
从频率域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以用高通滤波器来使图像清晰。
但要注意能够进行锐化处理的图像必须有较高的性噪比,否则锐化后图像性噪比反而更低,从而使得噪声增加的比信号还要多,因此一般是先去除或减轻噪声后再进行锐化处理。
考察正弦函数,它的微分。
微分后频率不变,幅度上升2πa倍。
空间频率愈高,幅度增加就愈大。
这表明微分是可以加强高频成分的,从而使图像轮廓变清晰。
最常用的微分方法是梯度法和拉普拉斯算子。
但本文主要探究几种边缘检测算子,Laplace、Prewitt、Sobel算子以下具体介绍。
图像边缘检测:边缘检测是检测图像局部显著变化的最基本运算,梯度是函数变化的一种度量。
图像灰度值的显著变化可用梯度的离散逼近函数来检测,大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。
边缘检测可分为两大类基于查找一类和基于零穿越的一类。
基于查找的方法通过寻找图像一阶导数中的最大和最小值来检测边界,通常是将边界定位在梯度最大的方向。
基于零穿越的方法通过寻找图像二阶导数零穿越来寻找边界,通常是Laplacian过零点或者非线性差分表示的过零点。
图像边缘检测方法比较研究
图像边缘检测方法比较研究作者:关琳琳孙媛来源:《现代电子技术》2008年第22期摘要:边缘检测在数字图像处理中有着重要的作用。
系统分析目前具有代表性的边缘检测方法,并用IDL6.3软件实现各种算法。
实验结果表明,各种方法均有各自的优缺点和适用条件,在做图像边缘检测之前,应对图像进行分析,针对图像的特点和应用需求选用合适的方法。
关键词:边缘检测;检测算子;高通滤波;小波变换中图分类号:TP391文献标识码:A文章编号:1004-373X(2008)22-096-03Comparison of Image Edge Detection MethodsGUAN Linlin1,SUN Yuan2(1.Department of Resource Science and Technology,Beijing NormalUniversity,Beijing,100875,China;2.96656 Unit of Second Artillery F orces,Chinese People′s LiberationArmy,Beijing,100820,China)Abstract:Edge detection plays an important role in digital image processing.This paper comprehensively analyze the representative methods of edge detection at present,and realizes each algorithm with the IDL6.3 software.Results indicate that each method has some advantages and limitations.It should be carefully selected according to the characteristics of the image as well as application needs before conducting edge detection.Keywords:edge detection;detective operators;high-pass filtering;wavelet transform1 引言边缘检测技术是图像特征提取中的重要技术之一,也是图像分割、目标区域识别、区域形状提取等图像分析方法的基础。
边缘检测五种算法的比较与分析
边缘检测五种算法的比较与分析随着计算机技术的发展,边缘检测作为图像处理最为重要的一门技术得到了越来越多的重视,它是图像分割、图像识别的前提。
文章就边缘检测的五种算子进行了比较与分析,得出了最佳边缘检测算法。
标签:边缘;检测算子;图像分割近年来,由于计算机技术的不断发展,图像处理在各个领域都得到了广泛应用。
边缘检测作为一种最为重要的图像处理技术也得到了重视,所谓边缘,就是指图像中恢复变化明显的区域,它是边界检测的基础,也是外形检测的基础,是图像分割所依赖的重要特征,而梯度是函数变化的一种度量,一幅图像可以看作是图像强度连续函数的取样点序列。
通过梯度的计算,我们能了解到图像灰度变化最大的点进而找出图像的边缘所在,边缘检测就是在有噪声背景的图像中确定出目标物边界的位置,可以把图像最显著的特征表示出来,减少工作量,提升效率。
经典的边缘检测算法有Roberts、sobel、canny、log、prewitt五种算法,文章将就这五种经典算法进行比较与分析。
在了解边缘检测之前,我们有必要知道图像的有关知识,图像主要分为模拟图像和数字图像。
模拟图像是通过某种物理量的强弱变化来记录图像上各点的亮度信息的,例如模拟电视图像;而数字图像则完全是用数字来记录图像亮度信息的。
数字图像的基本单位是像素,它是像素的集合,并且可以用一个矩阵来表示,矩阵的列数代表了图像的高,行数代表着图像的宽,矩阵元素对应图像像素,矩阵元素的值就是像素的灰度值。
灰度图像是数字图像的最基本的表达形式,它可以从黑白照片数字化得到,也可以通过彩色照片去色处理得到,因此,灰度图像只有亮度信息而没有颜色信息,所以每个像素点都只有一个量化的灰度级,如果用一个字节来存储灰度值的话,则取值范围有0-255共256个灰度级来表示图像的亮度。
彩色图像的数据不仅包括亮度信息,还包括颜色信息,主要通过RGB 模型来表示,即每个像素包括RGB三基色数据,每个基色用一个字节表示,则共有3个字节,也就是24位,我们说的24位真彩色就是这样得出来的。
各种边缘检测的比较
各类边缘检测算子的比较摘要:边缘检测是图像处理和计算机视觉中的基本问题,其目的标识数字图像中亮度变化明显的点。
图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。
有许多方法用于边缘检测,它们的绝大部分可以划分为两类:基于搜索和基于零交叉。
基于搜索的边缘检测算子有:Roberts算子,Prewitt算子,Sobel算子,Canny算子,罗盘算子。
基于零交叉的边缘检测算子有Marr-Hildreth边缘检测器。
本篇论文分析了各种检测算子的特点,并对各种边缘检测算法的检测结果进行了比较。
关键词:边缘检测;图像处理;算子0 引言图像边缘是图像的重要特征,是计算机视觉、模式识别等的基础,因此边缘检测是图像处理中一个重要的环节。
然而,图像边缘受很多因素的影响。
这些包括(i)深度上不连续、(ii)表面方向不连续、(iii)物质属性变化和(iv)场景照明变化。
目前,常用的边缘检测算法没有哪一种具有绝对的优越性。
因此,对各种边缘检测算子的性能进行比较分析,根据图像边缘的特征选择比较合理的边缘检测显得尤为重要。
1 基于搜索的边缘检测算子基于搜索的边缘检测方法首先计算边缘强度,通常用一阶导数表示,例如梯度模;然后,用计算估计边缘的局部方向,通常采用梯度的方向,并利用此方向找到局部梯度模的最大值。
1.1 Roberts算子Roberts算子【1】是一种利用局部差分算子寻找边缘的算子,它由下式给出 :g ( x , y) = [ f ( x , y) - f ( x + 1 , y + 1) ]2 +[ f ( x + 1 , y) - f ( x , y + 1) ]2(1)其中 f ( x , y ) 、 f ( x + 1 , y ) 、 f ( x , y + 1) 和 f ( x + 1 , y + 1) 分别为 4领域的坐标,且是具有整数像素坐标的输入图像。
Roberts算子是2X 2 算子模板。
数字图像处理中的边缘检测算法研究
数字图像处理中的边缘检测算法研究一、引言边缘检测在数字图像处理中是一个非常重要的问题,其主要任务是检测图像中物体的边缘信息,为后续的图像分割、目标跟踪、模式识别等处理提供基础。
目前,数字图像处理领域中常用的边缘检测算法主要包括基于梯度的算法、基于模板的算法和基于机器学习的算法,这些算法各有特点,适用于不同的应用场景。
本文将介绍几种经典的边缘检测算法及其特点,以期对数字图像处理领域的研究有所帮助。
二、基于梯度的边缘检测算法基于梯度的边缘检测算法是最为常见的一种边缘检测算法,其主要思路是通过对图像做梯度运算,来检测图像中的边缘信息。
经典的基于梯度的边缘检测算法包括Sobel算法、Prewitt算法、Roberts算法、Canny算法等。
下面我们将依次介绍这几种算法的特点及其优缺点。
1. Sobel算法Sobel算法是一种常见的基于梯度的边缘检测算法,其主要思想是对图像进行一阶梯度运算。
Sobel算子可以分为水平滤波器和垂直滤波器两个部分,分别用于检测图像中水平和垂直方向的边缘信息。
Sobel算法不仅能够提取较为精确的边缘信息,而且计算速度也较快,在实际应用中得到了广泛的应用。
2. Prewitt算法Prewitt算法也是一种基于梯度的边缘检测算法,其内核包括水平和垂直方向的两个模板。
与Sobel算法相比,Prewitt算法更加注重增强图像的垂直边缘信息,因此在一些需要检测线状目标的应用场景中,效果更加明显。
3. Roberts算法Roberts算法是一种基于梯度的边缘检测算法,它通过对图像做两阶梯度运算,来检测图像中的边缘信息。
Roberts算法在边缘检测的过程中可以检测到细节较为丰富的边缘,但是它所检测到的边缘信息相对于其他算法而言较为稀疏。
4. Canny算法Canny算法是一种经典的基于梯度的边缘检测算法,其主要思路是先将图像做高斯滤波,之后再计算图像的梯度值,通过非极大值抑制和双阈值分割等处理,最终得到准确的边缘信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理
几种边缘检测算子的比较
边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图
像中亮度变化明显的点。
图像属性中的显著变化通常反映了属性的重要事件和变化。
这些包括:深度上的不连续、表面方向不连续、物质属性变化和场景照明变化。
边缘
检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域。
图像边缘检测
大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结
构属性。
有许多方法用于边缘检测,它们的绝大部分可以划分为两类:基于查找一
类和基于零穿越的一类。
基于查找的方法通过寻找图像一阶导数中的最大和最小值
来检测边界,通常是将边界定位在梯度最大的方向。
基于零穿越的方法通过寻找图
像二阶导数零穿越来寻找边界,通常是Laplacian过零点或者非线性差分表示的过
零点。
人类视觉系统认识目标的过程分为两步:首先,把图像边缘与背景分离出来;然后,才能知觉到图像的细节,辨认出图像的轮廓。
计算机视觉正是模仿人类视觉的这个过程。
因此在检测物体边缘时,先对其轮廓点进行粗略检测,然后通过链接规则把原来
检测到的轮廓点连接起来,同时也检测和连接遗漏的边界点及去除虚假的边界点。
图
像的边缘是图像的重要特征,是计算机视觉、模式识别等的基础,因此边缘检测是图
象处理中一个重要的环节。
然而,边缘检测又是图象处理中的一个难题,由于实际景
物图像的边缘往往是各种类型的边缘及它们模糊化后结果的组合,且实际图像信号存
在着噪声。
噪声和边缘都属于高频信号,很难用频带做取舍。
这就需要边缘检测来进行解决的问题了。
边缘检测的基本方法有很多,一阶的有Roberts Cross算子,Prewitt算子,Sobel算子,Canny算子, Krisch算子,罗盘算子;而二阶的还有Marr-Hildreth,在梯度方向的二阶导数过零点。
现在就来
简单介绍一下各种算子的算法
Roberts 算子
Roberts 算子是一种利用局部差分算子寻找边缘的算子,它有下式给出: g(x,y)=[√f(x,y)−√f(x +1,y +1)]2+[√f (x,y +1)−√f (x +1,y )]2
其中f(x,y)、f(x +1,y)、f (x,y +1)和 f(x +1,y +1) 分别为4领域的坐标,且是具有整数像素坐标的输人图像;其中的平方根运算使得该处理类似于人类视觉系统中发生的过程。
Roberts 算子是2X2算子模板。
图1所示的2个卷积核形成了Roberts 算子。
图象中的每一个点都用这2个核做卷积。
图
Sobel 算子
Sobel 算子是一种一阶微分算子,它利用像素邻近区域的梯度值来计算1个像素的梯度,然后根据一定的绝对值来取舍。
它由下式给出:
S =√(dx 2+dy 2)
Sobel 算子是3*3算子模板。
图2所示的2个卷积核dx 、 dy 形成Sobel 算子。
一个核对通常的垂直边缘响应最大,而另一个核对水平边缘响应最大。
2个卷积的最大值作为该点的输出值。
运算结果是一幅边缘幅度图像。
图2 Sobel 算子
Prewitt 算子
Prewitt 算子由下式给出:
Sp =√(dx 2+dy 2) Prewitt 算子是3*3算子模板。
图3所示的2个卷积核dx ,不要形成了Prewitt 算子。
与Sobel 算子的方法一样,图像中的每个点都用这2个核进行卷积,取最大值作为输出值。
Prewitt 算子也产生一幅边缘幅度图像。
LOG 滤波器又称Marr-Hildreth 模板或算子
∇G (x,y )=ð2G
ð2x +ð2G ð2y =1πð4(x 2+y 2σ2−1)exp (−x 2+y 22σ2)
式中:G(x,y)是对图像进行处理时选用的平滑函数(Gaussian 函数);x ,y 为整数坐标; σ为高斯分布的均方差。
对平滑后的图像fs(fs=f(x,y)*G(x,y))做拉普拉斯变换,得:
h(x,y)=∇2fs (x,y )=∇2[f (x,y )∗G (x,y )]=f (x,y )∗∇2G(x,y)
即先对图象平滑,后拉氏变换求二阶微分,等效于把拉氏变化作用于平滑函数,得到1个兼有平滑和二阶微分作用的模板,再与原来的图像进行卷积。
用Marr-
Hildreth 模板与图像进行卷积的优点在于,模板可以预先算出,实际计算可以只进行卷积。
LOG 滤波器有以下特点:
(1)通过图象平滑,消除了一切尺度小于σ的图像强度变化;
(2)若用其它微分法,需要计算不同方向的微分,而它无方向性,因此可以节省计算量
;
(3)它定位精度高,边缘连续性好,可以提取对比度较弱的边缘点。
LOG滤波器也有它的缺点:当边缘的宽度小于算子宽度时,由于过零点的斜坡融合将会丢失细节。
LOG滤波器有无限长的拖尾,若取得很大尺寸,将使得计算不堪重负。
但随
着:r=√x2+y2的增加,LOG滤波器幅值迅速下降,当r大于一定程度时,可以忽略模板的作用,这就为节省计算量创造了条件。
实际计算时,常常取n* n大小的LOG滤波器,近似n=3σ。
另外,LOG滤波器可以近似为两个指数函数之差,即DOG
( Difference Of two Gaussians functions):
DOG(σ1,σ2)=1
2πσ12exp (−x2+y2
2σ12
)-1
2πσ22
exp (−x2+y2
2σ22
)
当σ1/σ2=1.6时,DOG代替LOG减少了计算量。
Canny算子
Canny算子是是一阶算子。
其方法的实质是用1个准高斯函数作平滑运算
fs=f(x,y)*G(x,y),然后以带方向的一阶微分算子定位导数最大值。
平滑后fs(x,y)的梯度可以使用2*2的一阶有限差分近似式:
P[i,j]≈(fs[i,j+1]-fs[i,j]+fs[i+1,j+1]-fs[i+1,j])/2
Q[i,j] ≈(fs[i,j]-fs[i+1,j]+fs[i,j+1]-fs[i+1,j+1])/2
在这个2x2正方形内求有限差分的均值,便于在图像中的同一点计算二和y的偏导数梯度。
幅值和方向角可用直角坐标到极坐标的坐标转化来计算:
M[i,j]=√P[i,j]2+Q[i,j]2
θ[i,j]=tan−1(Q[i,j]/P[i,j])
M[i,j]反映了图象的边缘强度; θ[i,j]反映了边缘的方向。
使得M}i,j}取得局部最大值的方向角θ[i,j],就反映了边缘的方向。
Canny算子也可用高斯函数的梯度来近似,在理论上很接近4个指数函数的线性组合形成的最佳边缘算子。
在实际工作应用中编程较为复杂且运算较慢。
几种算子的比较
Robert算子定位比较精确,但由于不包括平滑,所以对于噪声比较敏感。
Prewitt 算子和Sobel算子都是一阶的微分算子,而前者是平均滤波,后者是加权平均滤波且检测的图像边缘可能大于2个像素。
这两者对灰度渐变低噪声的图像有较好的检测效果,但是对于混合多复杂噪声的图像,处理效果就不理想了。
LOG滤波器方法通过检测二阶导数过零点来判断边缘点。
LOG滤波器中的a正比于低通滤波器的宽度,a越大,平滑作用越显著,去除噪声越好,但图像的细节也损失越大,边缘精度也就越低。
所以在边缘定位精度和消除噪声级间存在着矛盾,应该根据具体问题对噪声水平和边缘点定位精度要求适当选取。
讨论和比较了几种常用的边缘检测算子。
梯度算子计算简单,但精度不高,只能检测出图像大致的轮廓,而对于比较细的边缘可能会忽略。
Prewitt 和Sobel 算子比Roberts 效果要好一些。
LOG 滤波器和Canny 算子的检测效果优于梯度算子,能够检测出图像较细的边缘部分。
不同的系统,针对不同的环境条件和要求,选择合适的算子来对图像进行边缘检测。