基于LOG和Canny算子的边缘检测算法
halcon边缘检测例子
halcon边缘检测例子Halcon是一款功能强大的机器视觉库,其边缘检测功能可以帮助我们在图像中找出物体的边缘,从而实现目标检测和分割。
下面将以Halcon边缘检测例子为题,列举一些常用的边缘检测方法和技巧。
一、Sobel算子边缘检测Sobel算子是一种常用的边缘检测算法,它通过计算图像的一阶导数来寻找边缘。
Halcon中可以使用函数SobelA来实现Sobel算子的边缘检测,可以设置不同的参数来调整检测结果的灵敏度。
二、Canny算子边缘检测Canny算子是一种经典的边缘检测算法,它结合了高斯滤波、梯度计算和非最大值抑制等步骤,可以得到更准确的边缘检测结果。
Halcon中可以使用函数EdgesSubPix来实现Canny算子的边缘检测,可以设置不同的参数来调整检测结果的质量和灵敏度。
三、Laplacian算子边缘检测Laplacian算子是一种基于二阶导数的边缘检测算法,它可以检测出图像中的高频变化,从而找到边缘。
Halcon中可以使用函数Laplace来实现Laplacian算子的边缘检测,可以设置不同的参数来调整检测结果的灵敏度。
四、Roberts算子边缘检测Roberts算子是一种简单但有效的边缘检测算法,它通过计算图像中像素点的灰度差来判断是否存在边缘。
Halcon中可以使用函数RobertsA来实现Roberts算子的边缘检测,可以设置不同的参数来调整检测结果的灵敏度。
五、Prewitt算子边缘检测Prewitt算子是一种基于一阶导数的边缘检测算法,它通过计算图像中像素点的灰度变化来寻找边缘。
Halcon中可以使用函数PrewittA来实现Prewitt算子的边缘检测,可以设置不同的参数来调整检测结果的灵敏度。
六、Scharr算子边缘检测Scharr算子是一种改进的Sobel算子,它可以更好地抵抗噪声干扰,提供更准确的边缘检测结果。
Halcon中可以使用函数ScharrA来实现Scharr算子的边缘检测,可以设置不同的参数来调整检测结果的灵敏度。
(整理)基于sobel、canny的边缘检测实现
基于sobel 、canny 的边缘检测实现一.实验原理Sobel 的原理:索贝尔算子(Sobel operator )是图像处理中的算子之一,主要用作边缘检测。
在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。
在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量.该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。
如果以A 代表原始图像,Gx 及Gy 分别代表经横向及纵向边缘检测的图像,其公式如下:101202*101x G A -+⎛⎫ ⎪=-+ ⎪ ⎪-+⎝⎭ 121000*121y G A+++⎛⎫ ⎪= ⎪ ⎪---⎝⎭在以上例子中,如果以上的角度Θ等于零,即代表图像该处拥有纵向边缘,左方较右方暗。
在边沿检测中,常用的一种模板是Sobel 算子。
Sobel 算子有两个,一个是检测水平边沿的 ;另一个是检测垂直平边沿的 。
与 和 相比,Sobel 算子对于象素的位置的影响做了加权,因此效果更好。
Sobel 算子另一种形式是各向同性Sobel(Isotropic Sobel)算子,也有两个,一个是检测水平边沿的 ,另一个是检测垂直平边沿的 。
各向同性Sobel 算子和普通Sobel 算子相比,它的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。
由于建筑物图像的特殊性,我们可以发现,处理该类型图像轮廓时,并不需要对梯度方向进行运算,所以程序并没有给出各向同性Sobel 算子的处理方法。
由于Sobel 算子是滤波算子的形式,用于提取边缘,可以利用快速卷积函数, 简单有效,因此应用广泛。
美中不足的是,Sobel 算子并没有将图像的主体与背景严格地区分开来,换言之就是Sobel 算子没有基于图像灰度进行处理,由于Sobel 算子没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意。
在观测一幅图像的时候,我们往往首先注意的是图像与背景不同的部分,正是这个部分将主体突出显示,基于该理论,我们给出了下面阈值化轮廓提取算法,该算法已在数学上证明当像素点满足正态分布时所求解是最优的。
LOG与Canny边缘检测比较
一种基于Canny理论的边缘提取算法
数字图像的边缘检测是图像分割、目标区域识别、区域形状提取等图像分析领域十分重要的基础,也是图像识别中提取图像特征的一个总要属性。
传统的边缘检测算法认为边缘主要表现为图像局部特征的不连续性,从而关于边缘检测算子的研究主要集中在灰度图像梯度的研究。
常用的微分算子有:Roberts算子、Sobel算子、prewitt算子、Laplace算子、LOG算子等等。
这些算子简单而且易于实现,具有很好的实时性,但对于噪声敏感、抗噪声性能差,边缘不够精细。
相比之下Canny算子具有信噪比大和检测精度高的优点,被广泛应用。
本文介绍了一种基于Canny算子的自适应阈值分割的边缘提取算法。
1 Canny算子利用Canny算子进行边缘检测主要包括的过程有:利用高斯函数低通滤波平滑图像、计算梯度的幅值及方向、对梯度幅值进行非极大值抑制、检测和连接边缘等。
1.1高斯平滑首先利用高斯函数的一阶微分对图像进行低通滤波,设高斯函数为:222()x G x e (1)其一阶导数如下:22222()()xx G x e(2)式(3)给出了二维高斯函数:222()22(,)x y G x y e(3)这里的输入参数 是高斯函数的标准差,其决定“平滑度”。
1.2计算梯度幅值及方向Canny算法采用2 2邻域一阶偏导的有限差分来计算平滑后的图像的梯度幅值和方向, x 方向和 y 方向偏微分的一阶近似通过下式得到:111112x P111112y P梯度大小和方向计算公式如下:(,)M i j(,)arctan(,/,)y x i j P i j P i j (5)1.3采用非极大值抑制来细化边缘由于在处理的时候,会使图像的边缘产生屋脊带,所以为了细化边缘,Canny算法需要沿着屋脊带的顶部进行跟踪,将那些不是最大值的点值为零。
这一过程称为非极大值抑制。
1.4检测、连接边缘Canny算子采用双阈值法对经过非极大值抑制后的结果做两个阈值 1 和 2 ,并且2 1 2 ,进行分割得到两个阈值边缘图像 1,T i j 和 2,T i j ,图像 2,T i j 是由高阈值得到,因此含有很少的假边缘,但可能在边缘位置上存在间断(不闭合)。
边缘检测
边缘检测算子图像配准的方法7.4.1 基于特征的图像配准基于特征的图像配准首先提取图像信息的特征,然后以这些特征为模型进行配准。
特征提取的结果是一含有特征的表和对图像的描述,每个特征由一组属性表示,对属性的进一步描述包括边缘的定向和弧度、区域的大小等。
局部特征之间存在着相互关系,如几何关系、辐射度量关系、拓扑关系等。
可以用这些局部特征之间的关系描述全局特征。
通常基于局部特征配准大多都是基于点、线或边缘的,而全局特征的配准则是利用局部特征之间的关系进行配准的方法。
由于图像的特征点比图像的像素点要少很多,因此大大减少了配准过程的计算量,但特征提取方法的计算代价通常较大,不便于实时应用。
特征点的配准度量值对位置的变化比较敏感,可以大大提高配准的精确程度。
对于纹理较少的图像区域提取的特征的密度通常比较稀少,局部特征的提取就比较困难。
特征点的提取过程可以减少噪声的影响,对灰度变化、图像形变和遮挡等都有较好的适应能力。
因此,在图像配准领域得到了广泛应用。
基于特征的图像配准方法有两个重要环节:特征提取和特征配准。
7.4.2 基于互信息的图像配准医学图像配准技术从基于特征的配准方法发展到基于统计的配准方法有其突破性的意义。
与基于特征的配准方法相比,基于统计的配准方法的突出优点为鲁棒性好、配准精度高、人工干预少。
基于统计的配准方法通常是指最大互信息的图像配准方法。
基于互信息的图像配准是用两幅图像的联合概率分布与完全独立时的概率分布的广义距离来估计互信息,并作为多模态医学图像配准的测度。
当两幅基于共同的解剖结构的图像达到最佳配准时,它们的对应像素的灰度互信息应为最大。
由于基于互信息的配准对噪声比较敏感,首先,通过滤波和分割等方法对图像进行预处理。
然后进行采样、变换、插值、优化从而达到配准的目的。
基于互信息的配准技术属于基于像素相似性的方法。
它基于图像中所有的像素进行配准,基于互信息的图像配准引入了信息论中的概念,如熵、边缘熵、联合熵和互信息等,可使配准精度达到亚像素级的高精度。
基于Canny算子的图像边缘检测优化算法
中图分类号 : T P 3 1 7 . 4 文献标识码 : A 文章 编号 : 1 0 0 1 — 7 1 1 9 ( 2 0 1 3 ) 0 7 - 0 1 2 7 - 0 5
An Op t i ma l Al g o r i t h m o f I ma g e E dg e De t e c t i o n Ba s e d O i l Ca n n y
XuLi a n g, We i Ru i
( De p a  ̄m e n t o f Co mp ut e r Sc i e n c e , Hu a n g h u a i Un i v e r s i t y , He na n Zh uma d i a n 4 63 0 0 0, Chi n a )
徐 亮 , 魏 锐
( 黄淮学 院 信息工程学院 , 河南 驻 马店 4 6 3 o o 0 )
摘
要: 针对的缺陷 , 提 出一种改进 的 C a n n y 的边缘
检测算法 。首先用开关型中值滤波器抑制噪声, 保持图像的边缘信息, 然后采用直方图凹度分析 自动 选取双 阈值 , 并用此高低 阈值检测及连接 图像 的边 缘 , 从 而得 到较 为理想 的图像 边缘 。实验结 果表明 ,
Ab s t r a c t : The t r a di t i o n a l Ca nn y e d g e de t e c t i o n a l g o r i t h m e x i s t s t h e d e f e c t l o s i n g d e t a i l s o f t h e e d g e, S O t h i s pa p e r p r o po s e d a n i mpr o v e d Ca nn y e d g e d e t e c t i o n a l g o it r h m . Fi r s t l y , by s wi t c hi n g me di a n f i l t e r i s r o b u s t t o n o i s e , Ke e p t h e e d g e i n f o r ma t i o n o f i ma g e , Th e n t he a u t o ma t i c s e l e c t i o n o f t h r e s h o l d hi s t o g r a m c o n c a v i t y a n a l y s i s ,a n d t h e l e v e l o f t h e t h r e s h o l d d e t e c t i o n a n d e d g e l i nk i n g i ma g e ,i n o r d e r t o g e t t h e mo r e i d e a l i ma g e e dg e .Th e e x p e r i me n t a l r e s u l t s s h o w t h a t ,t h e i mp r o v e d Ca n n y o p e r a t o r wi t h t h r e s h o l d a f t e r s t r o n g a d a p t i v e c a p a c i t y ,c a n e f f e c t i v e l y de t e c t t h e d e t a i l s o f i ma g e g r a d i e n t ,a n d r e mo v e t h e f a l s e e d g e s a n d n o i s e ma r g i n , e f f e c t i v e l y i mp r o v e t h e e d g e d e t e c t i o n pr e c i s i o n a n d a c c u r a c y . Ke y wo r ds : i ma g e e dg e d e t e c t i o n; h i s t o g r a m c o n c a v i t y a n a l y s i s ; c a n n y De t e c t o r ; t h r e s h o l d
Canny算子
1、边缘检测原理及步骤在之前的博文中,作者从一维函数的跃变检测开始,循序渐进的对二维图像边缘检测的基本原理进行了通俗化的描述。
结论是:实现图像的边缘检测,就是要用离散化梯度逼近函数根据二维灰度矩阵梯度向量来寻找图像灰度矩阵的灰度跃变位置,然后在图像中将这些位置的点连起来就构成了所谓的图像边缘(图像边缘在这里是一个统称,包括了二维图像上的边缘、角点、纹理等基元图)。
在实际情况中理想的灰度阶跃及其线条边缘图像是很少见到的,同时大多数的传感器件具有低频滤波特性,这样会使得阶跃边缘变为斜坡性边缘,看起来其中的强度变化不是瞬间的,而是跨越了一定的距离。
这就使得在边缘检测中首先要进行的工作是滤波。
1)滤波:边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此必须采用滤波器来改善与噪声有关的边缘检测器的性能。
常见的滤波方法主要有高斯滤波,即采用离散化的高斯函数产生一组归一化的高斯核(具体见“高斯滤波原理及其编程离散化实现方法”一文),然后基于高斯核函数对图像灰度矩阵的每一点进行加权求和(具体程序实现见下文)。
2)增强:增强边缘的基础是确定图像各点邻域强度的变化值。
增强算法可以将图像灰度点邻域强度值有显著变化的点凸显出来。
在具体编程实现时,可通过计算梯度幅值来确定。
3)检测:经过增强的图像,往往邻域中有很多点的梯度值比较大,而在特定的应用中,这些点并不是我们要找的边缘点,所以应该采用某种方法来对这些点进行取舍。
实际工程中,常用的方法是通过阈值化方法来检测。
2、Canny边缘检测算法原理JohnCanny于1986年提出Canny算子,它与Marr(LoG)边缘检测方法类似,也属于是先平滑后求导数的方法。
本节对根据上述的边缘检测过程对Canny检测算法的原理进行介绍。
2.1 对原始图像进行灰度化Canny算法通常处理的图像为灰度图,因此如果摄像机获取的是彩色图像,那首先就得进行灰度化。
对一幅彩色图进行灰度化,就是根据图像各个通道的采样值进行加权平均。
基于canny算子的改进边缘检测算法
Gx ( x, y ) G ( x, y 1) G ( x, y 1) , G y ( x, y ) G ( x 1, y ) G ( x 1, y ) 。
Gx ( x, y ) 、 G y ( x, y ) 分别为点 ( x, y ) 处
在 x 方向和 y 方向的一阶偏导。 (3)非极大值抑制 将边缘的梯度方向按照水平、竖 直、45°和135°四个方向,用不同的邻 近像素进行比较,确定局部极大值。若某 个像素的灰度值与梯度方向上前后两个像 素的灰度值相比不是最大,该点即为非边
1.如何保证物业系统的成功实施 项目的成功实施离不开管理层的支 持,配套推行相应的管理制度,如公司 规定:业务人员每天要将信息及时录入系 统,作为公司、集团层面分析的依据,公 司根据系统中的业务资料,作为主要分析 的依据,同时每月对业务员做量化考评。 通过管理考评体系配合管理软件在基层的 实施取得很好的效果,有效的提高出租率 和收费数据分析精密度。强调将配套的制 度和软件有机结合起来。一方面作为一套 好的管理软件中应该带有完整的管理考核 体系配套,另一方面管理制度的执行同样 也需要管理软件的支撑和实现。 合双边滤波和Canny算子的优越性,提出 一种新的Canny边缘检测算法,该算法用 滤波性能较好的双边滤波代替传统Canny 边缘检测中的高斯滤波,对含噪图像具有 更好的边缘检测效果。 双边滤波是一种非线性的2D信号滤 波方法 ,是图像的空间临近度和像素相 似度的一种折衷处理[5],是通过像素的加 权平均而定义的,利用强度的变化来保存 图像边缘信息。设BF为双边滤波的符号, 由下式定义[6]:
1.引言 边缘检测技术是数字图像处理中的 一项重要技术,边缘检测的主要目的就是 实现对目标图像的精确定位。边缘是图像 的基本特征,是图像分割的重要依据,也 是纹理特征的重要信息源和形状特征分析 的基础,边缘检测的效果将直接影响到图 像理解和识别的性能 。经典的边缘检测 算子,如Robert、Prewitt、Log等,简 单、易于实现,但对噪声敏感、抗干扰性 能差,边缘不够精细[2]。相比这些算子, Canny算子具有更好的信噪比和检测精 度,在图像边缘检测领域中具有更加广泛 的应用范围。 但是,实际图像中,存在着许多噪 声,这时,若仍采用传统Canny算子进行 边缘检测,会将一些噪声点误作边缘点检 测,导致提取的边缘轮廓模糊、不精确, 因此,我们需要对传统Canny算子加以改 进。 本文提出了一种基于Canny算子而改 进的边缘检测算法,该算法既可以较好地 滤除噪声,又可以提高目标边缘的定位精 度、抑制虚假边缘和去除冗余弱边缘,呈 现出了一个更为清晰的图像边缘检测结 果,比传统Canny算法具有更好的性能。 2.传统canny边缘检测算法 Canny提出了边缘检测性能优劣的3 个判断准则[3]: 高信噪比准则:即输出信号的信噪 比最大,以降低边缘点判断为非边缘点 和非边缘点判为边缘点的概率。信噪比越 大,误检率越低。 高定位精度准则:好的定位性能, 即检测出的边缘点要尽可能在实际边缘的 中心 单边缘相应准则:即单一边缘只有 惟一响应,并且对虚假边缘响应应得到最 大抑制。 2.1 传统canny算法边缘检测步骤
边缘检测的若干技术研究
边缘检测的若干技术研究一、本文概述边缘检测是计算机视觉和图像处理领域中的一项关键技术,旨在识别图像中物体的轮廓和边界。
边缘检测的结果对于后续的图像分析、目标识别、图像分割等任务至关重要。
随着数字图像处理技术的快速发展,边缘检测技术在许多领域如医学影像分析、自动驾驶、安防监控等得到了广泛应用。
本文旨在探讨边缘检测的若干技术研究,包括传统的边缘检测算法、基于深度学习的边缘检测算法以及最新的研究方向和挑战。
我们将回顾传统的边缘检测算法,如Sobel、Canny、Prewitt等,分析它们的原理、优缺点以及适用场景。
我们将重点介绍基于深度学习的边缘检测算法,如U-Net、HED、DeepLab等,探讨它们在复杂场景下的性能表现和改进方法。
我们将展望边缘检测技术的未来发展趋势,包括多模态融合、无监督学习、实时性能提升等方面的研究。
通过本文的综述,读者可以对边缘检测技术的历史发展、现状和未来趋势有一个全面的了解,为相关领域的研究和应用提供参考和借鉴。
二、边缘检测的基本原理边缘检测是图像处理中的一项关键任务,其目标在于识别图像中物体的轮廓,从而实现对图像内容的理解和分析。
边缘检测的基本原理主要基于图像中边缘区域像素灰度值或颜色值的不连续性或突变性。
这些不连续性通常表现为灰度值或颜色值的阶跃变化或屋顶状变化。
阶跃边缘是指图像中像素值发生急剧变化的区域,这种变化通常是由于物体与背景的交界处产生的。
在阶跃边缘处,像素值的导数会出现极值,因此,通过计算图像的一阶或二阶导数,可以有效地检测到阶跃边缘。
常用的基于一阶导数的边缘检测算子有Sobel、Prewitt 和Roberts等,而基于二阶导数的边缘检测算子则有Laplacian和Canny等。
屋顶状边缘则是指图像中像素值在边缘处先增后减的区域,这种变化通常是由于物体表面的光照变化或反射引起的。
在屋顶状边缘处,像素值的二阶导数会出现过零点,因此,通过计算图像的二阶导数并寻找过零点,也可以实现边缘检测。
基于LOG和Canny算子的边缘检测算法
采 用 L G算子对图像进行噪声过滤 ,从以下 3个方面改进 Can O n y算子实现边缘检测 :() 1设计高斯滤波核对过滤掉噪声 的图像进行边缘增
强 ,使 低 强度 边 缘 更 容 易被 检 测 ;() M x 邻 域 中 计 算梯 度 幅值 和 方 向 ;() 梯 度方 向结 合 梯 度 幅值 计算 ,使 梯 度 幅值 在 边 缘 检测 中更 2在 N 3将
具依据性。对增加椒盐噪声 的图像进行实验 ,结果表 明,该方法在最大程度抑制噪声的同时,能检测到更多的低强度边缘 。 关健诃 :Can n y算子 ;L OG算子;高斯滤波核 ;梯 度核 ;梯度幅值
Al o ih o g t c i n Ba e n LOG n n y Op r t r g r t m fEd eDe e to s d o a d Ca n e a o
i rv di ef wigtr eap cs oe e uetee g e cin ( ) ein u s ns oh n en l O it s ee g f itr l rd mpo e t o n e s e t t x c t d ed t t : 1I d s sGa si mo t igk r e t e et d e cu eft e nhl h h e o t g a nn h op ie n i ,whc k s t e lw itn i d e d t te s y 2 G a i t ma ntd n i cin ae c l lt y px l w t i a M_y Ⅳ os e ih ma e h o e s y e g ee a i ;() rd e g i e a d dr t r ac ae b ies i n b — n t c l n u e o u d h
canny算子
经典图像边缘检测(综合法思想)——Canny算子John Canny于1986年提出Canny算子,它与Marr(LoG)边缘检测方法类似,也属于是先平滑后求导数的方法。
John Canny研究了最优边缘检测方法所需的特性,给出了评价边缘检测性能优劣的三个指标:l好的信噪比,即将非边缘点判定为边缘点的概率要低,将边缘点判为非边缘点的概率要低;l高的定位性能,即检测出的边缘点要尽可能在实际边缘的中心;l对单一边缘仅有唯一响应,即单个边缘产生多个响应的概率要低,并且虚假响应边缘应该得到最大抑制。
用一句话说,就是希望在提高对景物边缘的敏感性的同时,可以抑制噪声的方法才是好的边缘提取方法。
Canny算子求边缘点具体算法步骤如下:1. 用高斯滤波器平滑图像.2. 用一阶偏导有限差分计算梯度幅值和方向.3. 对梯度幅值进行非极大值抑制.4. 用双阈值算法检测和连接边缘.步1. 图像与高斯平滑滤波器卷积:步3. 对梯度幅值进行非极大值抑制(non_maxima suppression,NMS):仅仅得到全局的梯度并不足以确定边缘,因此为确定边缘,必须保留局部梯度最大的点,而抑制非极大值。
解决方法:利用梯度的方向:步4. 用双阈值算法检测和连接边缘:对非极大值抑制图像作用两个阈值th1和th2,两者关系th1=0.4th2。
我们把梯度值小于th1的像素的灰度值设为0,得到图像1。
然后把梯度值小于th2的像素的灰度值设为0,得到图像2。
由于图像2的阈值较高,去除大部分噪音,但同时也损失了有用的边缘信息。
而图像1的阈值较低,保留了较多的信息,我们可以以图像2为基础,以图像1为补充来连结图像的边缘。
链接边缘的具体步骤如下:对图像2进行扫描,当遇到一个非零灰度的像素p(x,y)时,跟踪以p(x,y)为开始点的轮廓线,直到轮廓线的终点q(x,y)。
考察图像1中与图像2中q(x,y)点位置对应的点s(x,y)的8邻近区域。
基于canny算子的边缘检测算法应用研究
基于canny算子的边缘检测算法应用研究作者:陈蒙来源:《电子技术与软件工程》2013年第23期摘要:边缘检测技术是图像处理过程的重要一环,本文主要研究基于canny算则的边缘检测算法中的抑制噪声、寻找亮度梯度、非极大值抑制、边缘的确定和连接等四个过程,并逐个分析其实现过程及作用。
【关键词】边缘检测高斯平滑1 引言随着图像处理技术的发展与广泛应用,现在社会中图像处理的应用领域越来越广泛,如三维重建,医学诊断,图像识别等等。
而图像处理过程中,最重要的一项预处理技术即为边缘检测技术。
图像的边缘是图像特征识别中的重要组成部分。
我们一般认为边缘是图像中周围像素有不连续变化或屋脊变化的像素的集合。
在一幅图像中,边缘特征所表达的信息量在整张图片的特征信息中占有主导地位,对图像特征的识别、分析十分重要。
边缘信息主要从像素值幅度和走向两个方面来表示。
一般来说,沿着边缘走向的像素点灰度值呈连续性变化特征,而垂直于边缘走向的像素点灰度值则呈跳跃性或阶跃性变化特征。
边缘检测技术即为通过一定的算法将图像中的边缘尽可能真实地提取或表示出来的技术。
边缘检测技术发展到目前已有很多类提取算法,但主要的计算原则就借助于类似高斯平滑、傅里叶变换等的数学函数与图像的灰度矩阵进行卷积计算,从而得到横、纵两个方向上的梯度图像和模图像,然后根据梯度方向来进行模的极大值提取,获得需要的图像特征边缘。
本文主要研究的是以canny算子为检测手段的边缘检测算法。
2 canny边缘检测算法任何一个边缘检测算法的原则都是真实、详尽地标识出原图像的实际边缘,同时又尽可能避免图像中的噪点、伪边缘等噪声的干扰,找到一个最优的图像边缘。
Canny边缘检测算法也是如此,一般由抑制噪声、寻找梯度亮度、非极大值抑制、确定和连接边缘这四步完成的。
2.1 1抑制噪声任何图像在进行边缘检测之前,都要进行抑制噪声的预处理。
它是所有图像处理过程的第一步。
图像的噪声主要有椒盐噪声和高斯噪声两种,而绝大部分图形的干扰噪声属于高斯噪声,因此canny算法的第一步采用的是运用二维高斯平滑模板与原图像数据进行卷积计算,而得到抑制噪声后的待处理图像。
canny边缘检测公式
Canny边缘检测是一种常用的图像处理算法,用于检测图像中的边缘。
以下是Canny边缘检测的基本公式和步骤:
高斯滤波:
首先对输入图像应用高斯滤波器,以减少噪声的影响。
高斯滤波器的公式如下:
G(x, y) = (1 / (2 * π* σ^2)) * exp(-(x^2 + y^2) / (2 * σ^2))
计算梯度幅值和方向:
在经过高斯滤波后的图像上,使用Sobel算子计算每个像素的梯度幅值和方向。
梯度幅值的计算公式如下:
G = sqrt(Gx^2 + Gy^2)
其中,Gx和Gy分别是在x和y方向上的梯度。
非极大值抑制:
对梯度幅值图像进行非极大值抑制,保留局部梯度幅值的峰值点,抑制非峰值点。
这样可以细化边缘。
双阈值处理:
将非极大值抑制后的图像进行阈值处理,将梯度幅值划分为强边缘、弱边缘和非边缘三个阈值区间。
根据强边缘和弱边缘之间的连通性关系,确定最终的边缘。
Canny边缘检测算法的具体参数设置和阈值选择可以根据具体应用进行调整。
这些公式和步骤提供了Canny边缘检测的基本原理和流程,但实际应用中可能还会有其他优化和改进的技术。
基于改进Canny算法的物体边缘检测算法
基于改进Canny算法的物体边缘检测算法物体边缘检测是计算机视觉中的一项重要任务,它在图像分析、物体识别和图像处理等领域具有广泛的应用。
Canny算法作为一种经典的边缘检测算法,被广泛应用于实际工作中。
然而,传统的Canny算法在处理一些复杂场景的边缘检测时存在一些问题,如边缘连接不准确、噪声敏感性较高等。
本文将介绍一种基于改进Canny算法的物体边缘检测算法,以解决传统Canny算法存在的问题。
1. 算法背景物体边缘检测是获取图像中物体边缘位置的过程,它对于图像中物体的形状和轮廓分析起着关键作用。
传统的Canny算法主要包括以下几个步骤:高斯平滑、计算梯度幅值和方向、非极大值抑制、双阈值处理和边缘连接。
然而,传统Canny算法对噪声比较敏感,而且在边缘连接过程中常常会出现断裂或连接错误的情况。
2. 改进的Canny算法为了改善传统Canny算法的缺点,我们提出了一种改进的Canny算法,具体步骤如下:2.1 高斯平滑首先对输入图像进行高斯平滑操作,以降低图像中的噪声。
我们采用一个合适大小的高斯卷积核对图像进行卷积操作,得到平滑后的图像。
2.2 计算梯度幅值和方向在平滑后的图像中,我们计算每个像素点的梯度幅值和方向。
可以使用Sobel、Prewitt等算子对图像进行梯度计算,得到梯度幅值和方向图像。
2.3 非极大值抑制在梯度幅值和方向图像中,我们进行非极大值抑制操作,以找到边缘的细化位置。
对于每个像素点,我们判断其梯度方向,并与相邻的两个像素进行比较,如果当前像素的梯度幅值最大,则保留,否则置零。
2.4 双阈值处理在进行非极大值抑制后,我们进行双阈值处理,以将真正的边缘从噪声中区分出来。
设置一个较高的阈值和一个较低的阈值,对梯度幅值进行判断,如果大于高阈值,则被认为是强边缘;如果处于低阈值和高阈值之间,则被认为是弱边缘;如果小于低阈值,则被认为是噪声。
2.5 边缘连接在双阈值处理后,我们进行边缘连接操作,以连接断裂的边缘线段。
Canny-算子边缘检测原理解析
w w
w
w
f 2 ( x)dx
G(-x)表示图像边函数 f(x)滤波器函数 表示噪声的均方差
Canny算子详细原理
②高的定位精度:Location越大越好
Location | G ' ( x ) f ' ( x)dx |
• 链接边缘的具体步骤如下:
• 对图像2进行扫描,当遇到一个非零灰度的像素p(x,y)时, 跟踪以p(x,y)为开始点的轮廓线,直到轮廓线的终点q(x,y)。 • 考察图像1中与图像2中q(x,y)点位置对应的点s(x,y)的8邻 近区域。如果在s(x,y)点的8邻近区域中有非零像素s(x,y) 存在,则将其包括到图像2中,作为r(x,y)点。从r(x,y)开 始,重复第一步,直到我们在图像1和图像2中都无法继续为 止。 • 当完成对包含p(x,y)的轮廓线的连结之后,将这条轮廓线标 记为已经访问。回到第一步,寻找下一条轮廓线。重复第一 步、第二步、第三步,直到图像2中找不到新轮廓线为止。 • 至此,完成canny算子的边缘检测。
w w
w
w
通过以上算式得出算子的近似实现:边缘点位于图 像被高斯平滑后的梯度值的极大值点。
算法过程
原始图像 A(x,yBy)
极大 值抑 制非
图像边缘
双阈值检测 连结边缘
初步得到 边缘点
详细算法过程
I. 高斯函数
x2 y2 n 1 G(x, y) exp | |, m , n表示 2 2 2 x m y m 高斯滤波器窗口大小
边缘检测算法
传统的边缘检测算子:Sobel算子,Prewitt算子,Roberts 算子,Krich算子等,大部分处理的效果都不很好,实际处理 中不太实用,而Canny算子检测的性能较好,常被作为其他实 验的标准来参考。Canny算子是John Canny在1986年发表的论 文中首次提出的一种边缘检测算法,当时弥补了其他算法的不 太好的缺点,因此Canny算子被认为是边缘检测领域较好的算 法,并一直被引用,近几年来,随着研究的深入,性能更加完 善的改性型的Canny算子也层出不穷,例如自适应Canny算子等。
Canny边缘检测算法的流程
Canny边缘检测算法的流程介绍边缘检测的⼀般标准包括:1) 以低的错误率检测边缘,也即意味着需要尽可能准确的捕获图像中尽可能多的边缘。
2) 检测到的边缘应精确定位在真实边缘的中⼼。
3) 图像中给定的边缘应只被标记⼀次,并且在可能的情况下,图像的噪声不应产⽣假的边缘。
在⽬前常⽤的边缘检测⽅法中,Canny边缘检测算法是具有严格定义的,可以提供良好可靠检测的⽅法之⼀。
由于它具有满⾜边缘检测的三个标准和实现过程简单的优势,成为边缘检测最流⾏的算法之⼀。
Canny边缘检测算法的处理流程Canny边缘检测算法可以分为以下5个步骤:1) 使⽤⾼斯滤波器,以平滑图像,滤除噪声。
2) 计算图像中每个像素点的梯度强度和⽅向。
3) 应⽤⾮极⼤值(Non-Maximum Suppression)抑制,以消除边缘检测带来的杂散响应。
4) 应⽤双阈值(Double-Threshold)检测来确定真实的和潜在的边缘。
5) 通过抑制孤⽴的弱边缘最终完成边缘检测。
下⾯详细介绍每⼀步的实现思路。
1 ⾼斯平滑滤波为了尽可能减少噪声对边缘检测结果的影响,所以必须滤除噪声以防⽌由噪声引起的错误检测。
为了平滑图像,使⽤⾼斯滤波器与图像进⾏卷积,该步骤将平滑图像,以减少边缘检测器上明显的噪声影响。
⼤⼩为(2k+1)x(2k+1)的⾼斯滤波器核的⽣成⽅程式由下式给出:下⾯是⼀个sigma = 1.4,尺⼨为3x3的⾼斯卷积核的例⼦(需要注意归⼀化):若图像中⼀个3x3的窗⼝为A,要滤波的像素点为e,则经过⾼斯滤波之后,像素点e的亮度值为:其中*为卷积符号,sum表⽰矩阵中所有元素相加求和。
重要的是需要理解,⾼斯卷积核⼤⼩的选择将影响Canny检测器的性能。
尺⼨越⼤,检测器对噪声的敏感度越低,但是边缘检测的定位误差也将略有增加。
⼀般5x5是⼀个⽐较不错的trade off。
2 计算梯度强度和⽅向图像中的边缘可以指向各个⽅向,因此Canny算法使⽤四个算⼦来检测图像中的⽔平、垂直和对⾓边缘。
基于改进Canny算子的图像边缘检测方法
基于改进Canny算子的图像边缘检测方法作者:魏晴霞来源:《科技创新导报》 2012年第16期魏晴霞(甘肃省电力公司信息通信中心交换网络处甘肃兰州 730050)摘要:针对Canny算子在图像边缘检测中算法鲁棒性差的问题,提出了一种改进的Canny算子并将其应用于图像边缘检测,新的算子利用平滑后对图像进行灰度拉伸的预处理,利用遗传算法求阈值,从而得到较为理想的图像边缘。
仿真实验结果表明,改进后的Canny算子能有效检测到图像中的细节梯度,并去除了伪边缘和噪声边缘。
关键词:Canny算子边缘检测灰度拉伸遗传算法中图分类号:TP391.4 文献标识码:A 文章编号:1674-098X(2012)06(a)-0028-01近些年来,随着一些新的数学理论及数学工具在图像处理中的新应用,由此学者们提出了一些新的边缘检测方法,例如:基于小波变换的方法、数学形态学方法、模糊理论和神经网络等边缘检测法[2-3]。
然而,就现有的图像边缘检测算子而言,Canny算子是效果最好且最具实用性的一个边缘检测算子。
然而,Canny算子也具有缺陷[4-5],主要表现在对噪声较为敏感,边缘检测鲁棒性较差,检测到的图像边缘常常含有较多的伪边缘。
为了克服这一难题,提出了一种改进的Canny边缘检测方法,与经典的Canny算子相比,新的Canny边缘检测算子具有更好的边缘检测结果和较高的鲁棒性。
1 改进后的Canny算子1.1 图像预处理图像预处理重要是对图像的滤波,其结果是可以平滑图像中的各种噪声,使图像更清晰,便于后续步骤的处理。
然而,图像滤波在平滑噪声的同时也会导致一些边缘细节变得比较模糊,从而导致在后续的图像处理过程中难以深层处理。
基于该原因,在图像滤波后,我们需要对图像进行灰度拉伸处理,以使图像的灰度分布范围变宽,从而增强图像对比度和边缘变化速率。
具体处理如公式1:其中,Mg=Mf=255。
u和V均为常数。
1.2 遗传算法求取阈值由于经典的边缘检测算子中Canny算子是性能最好的,然而,该算子性能受参数H处和阈值Hth、Lth的影响。
图像处理中的边缘检测算法及其应用
图像处理中的边缘检测算法及其应用一、引言图像处理是指利用计算机对数字图像进行编辑、处理和分析的过程,具有广泛的应用领域。
在图像处理中,边缘检测是一项最为基础的任务,其目的是通过识别图像区域中像素强度突变处的变化来提取出图像中的边缘信息。
本文将介绍边缘检测算法的基本原理及其应用。
二、基本原理边缘是图像中像素值发生跳变的位置,例如黑色区域与白色区域的交界处就可以看作是一条边缘。
边缘检测的主要任务是将这些边缘信息提取出来。
边缘检测算法一般可以分为基于梯度的算法和基于二阶导数的算法。
其中基于梯度的算法主要包括Sobel算子、Prewitt算子和Canny算子;而基于二阶导数的算法主要包括Laplacian算子、LoG(Laplacian of Gaussian)算子和DoG(Difference of Gaussian)算子。
1.Sobel算子Sobel算子是一种常用的边缘检测算法,是一种基于梯度的算法。
该算法在x方向和y方向上都使用了3x3的卷积核,它们分别是:Kx = |-2 0 2|-1 0 1-1 -2 -1Ky = | 0 0 0|1 2 1Sobel算子的实现可以通过以下步骤:①将输入图像转为灰度图像;②根据以上卷积核计算x方向和y方向的梯度;③根据以下公式计算梯度幅值和方向:G = sqrt(Gx^2 + Gy^2) (梯度幅值)θ = atan(Gy/Gx) (梯度方向)其中Gx和Gy分别为x方向和y方向上的梯度。
可以看到,Sobel算子比较简单,对噪声具有一定的抑制作用,但是在边缘细节处理上不够精细。
2.Prewitt算子Prewitt算子也是一种基于梯度的边缘检测算法。
其卷积核如下: -1 0 1-1 0 1-1 -1 -1Ky = | 0 0 0|1 1 1实现方法与Sobel算子类似。
3.Canny算子Canny算子是一种基于梯度的边缘检测算法,是目前应用最广泛的边缘检测算法之一。
matlab-图像处理-边缘检测算法五种
matlab-图像处理-边缘检测算法五种五种实现matlab边缘检测算法:⽅法⼀:matlab⾃带的edge函数:将图⽚保存为lena.jpgI=imread('lena.jpg');%提取图像img=rgb2gray(I);[m,n]=size(img);BW1=edge(img,'sobel'); %⽤Sobel算⼦进⾏边缘检测BW2=edge(img,'roberts');%⽤Roberts算⼦进⾏边缘检测BW3=edge(img,'prewitt'); %⽤Prewitt算⼦进⾏边缘检测BW4=edge(img,'log'); %⽤Log算⼦进⾏边缘检测BW5=edge(img,'canny'); %⽤Canny算⼦进⾏边缘检测h=fspecial('gaussian',5);%?⾼斯滤波BW6=edge(img,'canny');%⾼斯滤波后使⽤Canny算⼦进⾏边缘检测subplot(2,3,1), imshow(BW1);title('sobel edge check');subplot(2,3,2), imshow(BW2);title('roberts edge check');subplot(2,3,3), imshow(BW3);title('prewitt edge check');subplot(2,3,4), imshow(BW4);title('log edge check');subplot(2,3,5), imshow(BW5);title('canny edge check');subplot(2,3,6), imshow(BW6);title('gasussian&canny edge check'); 效果如下图所⽰:⽅法⼆:Laplacian算法clear;sourcePic=imread('lena.jpg');%图像读⼊grayPic=mat2gray(sourcePic);%实现图像的矩阵归⼀化操作[m,n]=size(grayPic);newGrayPic=grayPic;LaplacianNum=0;%经Laplacian操作得到的每个像素的值LaplacianThreshold=0.2;%设定阈值for j=2:m-1 %进⾏边界提取for k=2:n-1LaplacianNum=abs(4*grayPic(j,k)-grayPic(j-1,k)-grayPic(j+1,k)-grayPic(j,k+1)-grayPic(j,k-1));if(LaplacianNum > LaplacianThreshold)newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;endendendfigure,imshow(newGrayPic);title('Laplacian算⼦的处理结果') 效果图如下:⽅法三:Prewitt算法%Prewitt 算⼦的实现:clear;sourcePic=imread('lena.jpg');grayPic=mat2gray(sourcePic);[m,n]=size(grayPic);newGrayPic=grayPic;PrewittNum=0;PrewittThreshold=0.5;%设定阈值for j=2:m-1 %进⾏边界提取for k=2:n-1PrewittNum=abs(grayPic(j-1,k+1)-grayPic(j+1,k+1)+grayPic(j-1,k)-grayPic(j+1,k)+grayPic(j-1,k-1)-grayPic(j+1,k-1))+abs(grayPic(j-1,k+1)+grayPic(j,k+1)+grayPic(j+1,k+1)-grayPic(j-1,k-1)-grayPic(j,k-1)-grayPic(j+1,k-1)); if(PrewittNum > PrewittThreshold)newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;endendendfigure,imshow(newGrayPic);title('Prewitt算⼦的处理结果') 效果图如下:⽅法四:Sobel算法%Sobel 算⼦的实现:clear;sourcePic=imread('lena.jpg');grayPic=mat2gray(sourcePic);[m,n]=size(grayPic);newGrayPic=grayPic;sobelNum=0;sobelThreshold=0.7;for j=2:m-1for k=2:n-1sobelNum=abs(grayPic(j-1,k+1)+2*grayPic(j,k+1)+grayPic(j+1,k+1)-grayPic(j-1,k-1)-2*grayPic(j,k-1)-grayPic(j+1,k-1))+abs(grayPic(j-1,k-1)+2*grayPic(j-1,k)+grayPic(j-1,k+1)-grayPic(j+1,k-1)-2*grayPic(j+1,k)-grayPic(j+1,k+1)); if(sobelNum > sobelThreshold)newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;endendendfigure,imshow(newGrayPic);title('Sobel算⼦的处理结果') 效果如下:⽅法五:Roberts 算⼦的实现%Roberts 算⼦的实现:clear all;clc;sourcePic=imread('lena.jpg');grayPic=mat2gray(sourcePic);[m,n]=size(grayPic);newGrayPic=grayPic;robertsNum=0;robertThreshold=0.2;for j=1:m-1for k=1:n-1robertsNum = abs(grayPic(j,k)-grayPic(j+1,k+1)) + abs(grayPic(j+1,k)-grayPic(j,k+1)); if(robertsNum > robertThreshold)newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;endendendfigure,imshow(newGrayPic);title('roberts算⼦的处理结果') 效果图:。
log边缘检测方法的原理
log边缘检测方法的原理
1边缘检测原理
边缘检测是应用于图像处理中的一种技术,目的是在图像中检测出两个不同物体的边界部分,也就是边缘或轮廓的形状。
边缘检测可以用来对图像的对象进行分类和抽取,它也是很多其他图像处理技术的基础技术。
边缘检测常见的方法有Canny边缘检测(Canny edge
detection)和Sobel边缘检测(Sobel edge detection)。
它们都是基于运动和梯度变化来检测边缘的。
Canny边缘检测是以不同形式计算梯度来发现边缘的,而Sobel边缘检测是直接用梯度滤波器(如拉普拉斯滤波器)直接对图像进行滤波,然后从滤波后的图像中检测出边缘。
最近出现的一种新的边缘检测方法叫做Laplacian特征选择(Laplacian Feature Selection),也叫做LoG边缘检测(LoG Edge Detection)。
这种方法使用拉普拉斯算子(Laplacian Operator)来计算图像的梯度,然后将图像梯度变化曲线和梯度方向进行计算,来寻找边缘,实现边缘检测。
LoG边缘检测和之前的Canny和Sobel技术相比,准确度更高,速度更快,并且具有很好的鲁棒性,能够自动的抗噪,改善图像的噪声问题。
它在自然图像处理、医学图像处理等领域中都有广泛的应用。
LoG边缘检测的原理是,先通过计算二阶导数的幅值和极大值,然后在领域中进行局部匹配,以判断像素点是否为边缘点。
边缘检测是基于梯度方向、梯度幅值来完成的,通过比较梯度值的大小和方向,从而消除多余的噪声点,提高边缘检测的准确度,得到清晰的边缘检测结果。
因此,LoG边缘检测是一种准确、稳健、鲁棒性强的图像处理技术,在许多领域有广泛的应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
需要找到描述边缘与噪声点之间差异的特征信息。图像中的 像素点除了具有梯度幅值信息外,还具有梯度方向信息,而
Gx (i,
j)
=
1( 2
f
"[i,
j
+1] −
f
"[i,
j]+
f
"[i +1,
j
+1] −
f
"[i +1,
j])
(9)
Gy (i,
j)
=
1 2
(
f
"[i,
j]−
f
"[i
+ 1,
j] +
f
"[i,
j
+1] −
f
"[i
+ 1,
j
+ 1])
(10)
一阶偏导数 Gx(i, j)和 Gy(i, j)即为梯度矢量,点的梯度幅
值 M(i, j)和梯度方向 θ(i, j)用梯度矢量根据直角坐标到极坐
标的坐标转化公式来计算,则此时点(i, j)处的梯度幅值和梯
度方向分别为:
M (i, j) = Gx (i, j)2 + Gy (i, j)2
(11)
θ (i, j) = arctan(Gy (i, j) / Gx (i, j))
(3)
其中, ∇2G(x, y) 即为 LOG 算子:
LOG(x, y) = ∇2G(x, y) =
1
x2 [
+
y2
−
−
1]e
x2 + 2δ
y
2
2
(4)
πδ 4 2δ 2
用 LOG 算子处理图像时,是先用 G(x, y)进行平滑处理,
然后用式(2)对图像进行二阶导数增强。
本文采用 LOG 函数进行噪声过滤,研究发现,LOG 算
Algorithm of Edge Detection Based on LOG and Canny Operator
HE Qiang, YAN Li
(School of Computer Science and Communication Engineering, Jiangsu University, Zhenjiang 212013, China)
以肯定为噪声部分,因此,用式(5)过滤后的图像包含原图主
要信息并且主要的噪声部分都被过滤掉。过滤后的图像设为
f’(x, y),作为下面 Canny 算子处理的输入图像。
3 改进的 Canny 算子边缘检测
3.1 传统 Canny 算子原理 Canny 算子[5]首先采用高斯滤波器平滑图像,根据高斯
函数的一阶偏导数计算梯度,检测梯度幅值的局部极大值, 然后用低阈值 T1 得到弱边缘 E1,用高阈值 T2 得到边缘 E2, 最后 E1 中仅保留与 E2 有连通关系的连通分量作为输出边缘 E。Canny 算子进行边缘检测的过程如图 1 所示。
本文从 3 个方面改进 Canny 算子,并结合 LOG 算子进
行图像边缘检测。对于高噪声的图像,首先利用 LOG 算子进 行噪声过滤,通过深入研究发现,图像原值小于 LOG 函数值 的部分由图像上的绝大部分噪声组成,由此可以利用 LOG 算 子过滤掉图像上绝大部分噪声。本文设计了高斯滤波核对过 滤掉噪声的图像边缘进行边缘增强,使图像上一些低强度边 缘更容易被检测到;使用 M×N 的核计算梯度矢量,弥补了传 统 2×2 的核计算梯度矢量对于噪声敏感的问题;将梯度方向 结合到梯度幅值的计算中,实验证明该方法计算出的梯度幅 值在边缘检测中更具依据性。
4 2
2⎥⎥ 1⎥⎦
第 2 节通过 LOG 算子过滤后的图像,已经过滤掉绝大部
分噪点,这里需要对处理后的图像边缘进行增强,本文使用
下面的高斯滤波核增强图像的边缘:
⎡−1 −1 −1⎤
⎢⎢−1 α −1⎥⎥
(7)
⎢⎣−1 −1 −1⎥⎦
其中, α =2i, i=1, 2, 3。
由第 2 节的输入图像 f’(x, y),用上面的高斯滤波核进行
(12)
由图 1 可以看出,传统 Canny 算子判定边缘的唯一依据
是图像的梯度幅值,本文结合梯度矢量和方向,提出下面公
式计算梯度幅值:
M (i, j,θ ) = max(cosθGx (i, j), sinθGy (i, j))
(13)
在实际应用中,仅依据式(11)计算出的梯度幅值信息,
在进行双阈值的判定时,容易混淆低强度边缘和噪声,为此
Canny 算子作为一种优化的边缘检测算子,具有比较好 的信噪比和检测精度,得到了广泛的应用。然而实际应用中, 对于高噪声的模糊图像,Canny 算子在抑制噪声的同时往往 错过一些低强度的边缘,而一些高强度噪声被检测为边缘。 针对这些不足,国内外学者进行了很多研究,提出了许多的 改进方法。文献[1]提出一种基于二维经验模态分解(Bidimensional Empirical Mode Decomposition, BEMD)的分析方法,能 对图像进行多尺度分解,通过筛分过程提取出图像的细节信 息,结合 Canny 算子得到的边缘细致连续性好;文献[2]提出 一种基于梯度方向的检测和连接方法取代传统的双阈值法, 充分利用边缘点和噪声点在梯度方向特性上的差异,取得优 于传统 Canny 算子的性能;文献[3]提出基于梯度幅度直方图 和类内方差最小化动态的自动确定高低阈值的方法,提高 Canny 算子的自动化性能;文献[4]利用模糊推理方法来改进 边缘检测,并结合 Canny 算子进行边缘检测,取得很好的检 测性能。
子在进行边缘检测时,能很大程度的抑制噪声。通过将图像
原值与 LOG 函数值进行比较,发现图像原值小于 LOG 函数
的部分由图像上绝大部分噪声组成,本文正是利用此原理进
行噪声过滤。
本文用下列公式对原图进行噪声过滤:
f (x, y) ≥ LOG(x, y)
(5)
其中,f(x, y)为图像的原值,原值如果小于 LOG 函数值,可
第 37 卷 第 3 期
贺 强,晏 立:基于 LOG 和 Canny 算子的边缘检测算法
211
h(x, y) = ∇2 (G(x, y) ⊗ f (x, y))
(1)
其中, ⊗ 为卷积符号。▽2 公式为:
∇2 = ∂2 + ∂2 ∂x2 ∂y2
(2)
由卷积的可交换行得:
h(x, y) = ∇2G(x, y) ⊗ f (x, y)
图像边缘增强后的图为:
f "(x, y) = f '(x, y) ⊗ G(x, y)
(8)
3.3 梯度幅值计算的改进
传统 Canny 算法利用 2×2 邻域一阶偏导的有限差分来计
算平滑后图像 f”(x, y)各点处的梯度幅值和梯度方向,点(i, j)
处水平和垂 2 个方向的偏导数 Gx(i, j)和 Gy(i, j)分别为:
2 LOG 函数图像去噪
拉普拉斯算子是最常用的二阶基于导数的边缘检测算 子,它易受噪点影响,为减少对噪点敏感度,Marr 和 Hildreth 将高斯滤波和拉普拉斯边缘检测结合在一起,形成了 LOG 算 子。LOG 首先进行高斯平滑,然后进行拉普拉斯运算。它对 噪点不太敏感,因为高斯函数减少噪点,并且拉普拉斯模版 使检测到假边缘的概率减到最小。
G(x, y) = 1 exp( 1 (x2 + y2 ))
(6)
2πδ 2 2δ 2
其中,δ 为高斯曲线标准差,用于控制平滑程度。
对任意输入图像 f(x, y),高斯平滑是一个卷积的过程:
f(x, y) ⊗ G(x, y)。常用的高斯算子可用 3×3 的核对图像平滑:
⎡1 2 1⎤
1 16
⎢⎢2 ⎢⎣1
第 37 卷 第 3 期 Vol.37 No.3
·图形图像处理·
计算机工程 Computer Engineering
文章编号:1000—3428(2011)03—0210—03
文献标识码:A
2011 年 2 月 February 2011
中图分类号:TP391.41
基于 LOG 和 Canny 算子的边缘检测算法
1 概述
边缘检测是图像处理领域中最基本的问题,它的解决对 于进行高层次的特征提取、特征描述、目标识别和图像理解 等有着重大的影响,因此,被广泛应用与模式识别、计算机 视觉、图像分割等众多领域。经典的边缘提取算子包括 Sobel、 Roberts、Prewitt 以及 Laplacian、LOG 等。近来,随着科学 技术的发展,一些新的理论工具被运用到边缘检测中,如形 态学、统计学方法、模糊理论、遗传算法、神经网络等。
定义 设原图像为 f(x, y),高斯滤波函数为 G(x, y),两者 进行卷积运算,然后利用拉普拉斯算子▽2 实现边缘检测,输 出的图像 h(x, y),则 LOG 算子的推导如下:
基金项目:国家科技型中小企业技术创新基金资助项目(09C2621320 3797) 作者简介:贺 强(1984-),男,硕士研究生,主研方向:模式识别, 图像处理;晏 立,教授 收稿日期:2010-06-10 E-mail:heqiangcug@
【Abstract】Aiming at the disability of traditional Canny operator in noise suppression and detecting low-intensity edge, this paper proposes an edge detection method combined LOG operator and Canny operator. LOG operator is used to the picture for noise filtering and Canny operator is improved in the flowing three aspects to execute the edge detection: (1)It designs Gaussian smoothing kernel to intense the edge of picture filtered noise, which makes the low-intensity edge detect easily; (2)Gradient magnitude and direction are calculated by pixels within a M-by-N neighborhood; (3)It integrates gradient direction with the calculation of gradient magnitude, which can be the ground for gradient magnitude in edge detection. Through carrying out a lot experiment for picture increased salt and pepper noise, the method proposed in this paper can not only suppress noise in the largest degree, but also detect more low-intensity edge. 【Key words】Canny operator; LOG operator; Gaussian smoothing kernel; gradient kernel; gradient magnitude DOI: 10.3969/j.issn.1000-3428.2011.03.074