0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

图像处理和计算机视觉中常用边缘检测算法的研究

电子设计 来源:电子工程网 作者:电子工程网 2021-03-19 09:06 次阅读

边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。有许多方法用于边缘检测,它们的绝大部分可以划分为两类:基于查找一类和基于零穿越的一类。基于查找的方法通过寻找图像一阶导数中的最大和最小值来检测边界,通常是将边界定位在梯度最大的方向。基于零穿越的方法通过寻找图像二阶导数零穿越来寻找边界,通常是Laplacian过零点或者非线性差分表示的过零点。

边缘检测算子:

一阶:Roberts Cross算子, Prewitt算子, Sobel算子, Canny算子,罗盘算子;

二阶: Marr-Hildreth,在梯度方向的二阶导数过零点,Canny算子,Laplacian算子。

Roberts边缘检测

罗伯茨算子、Roberts算子是一种最简单的算子,是一种利用局部差分算子寻找边缘的算子,它采用对角线方向相邻两象素之差近似梯度幅值检测边缘。检测垂直边缘的效果好于斜向边缘,定位精度高,对噪声敏感,无法抑制噪声的影响。1963年,Roberts提出了这种寻找边缘的算子。

Roberts算子是一种利用局部差分算子寻找边缘的算子, 它由下式给出:

其中,

分别为4领域的坐标,且是具有整数像素坐标的输入图像。

Roberts算子是2 X 2算子模板。下图所示的2个卷积核形成了Roberts算子。图象中的每一个点都用这2个核做卷积。

图像处理和计算机视觉中常用边缘检测算法的研究

Roberts边缘算子是一个2x2的模板,采用的是对角方向相邻的两个像素之差。从图像处理的实际效果来看,边缘定位较准,对噪声敏感。适用于边缘明显且噪声较少的图像分割。Roberts边缘检测算子是一种利用局部差分算子寻找边缘的算子,Robert算子图像处理后结果边缘不是很平滑。经分析,由于Robert算子通常会在图像边缘附近的区域内产生较宽的响应,故采用上述算子检测的边缘图像常需做细化处理,边缘定位的精度不是很高。

Sobel边缘检测算法

索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度之近似值。在图像的任何一点使用此算子,将会产生对应的灰度矢量或是其法矢量。

Sobel卷积因子为:

该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以A代表原始图像,Gx及Gy分别代表经横向及纵向边缘检测的图像灰度值,其公式如下:

具体计算如下:

Gx = (-1)*f(x-1, y-1) + 0*f(x,y-1) + 1*f(x+1,y-1)

+(-2)*f(x-1,y) + 0*f(x,y)+2*f(x+1,y)

+(-1)*f(x-1,y+1) + 0*f(x,y+1) + 1*f(x+1,y+1)

= [f(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1)]-[f(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1)]

Gy =1* f(x-1, y-1) + 2*f(x,y-1)+ 1*f(x+1,y-1)

+0*f(x-1,y) 0*f(x,y) + 0*f(x+1,y)

+(-1)*f(x-1,y+1) + (-2)*f(x,y+1) + (-1)*f(x+1, y+1)

= [f(x-1,y-1) + 2f(x,y-1) + f(x+1,y-1)]-[f(x-1, y+1) + 2*f(x,y+1)+f(x+1,y+1)]

其中f(a,b), 表示图像(a,b)点的灰度值;

图像的每一个像素的横向及纵向灰度值通过以下公式结合,来计算该点灰度的大小:

通常,为了提高效率使用不开平方的近似值:

如果梯度G大于某一阀值 则认为该点(x,y)为边缘点。

然后可用以下公式计算梯度方向:

Sobel算子根据像素点上下、左右邻点灰度加权差,在边缘处达到极值这一现象检测边缘。对噪声具有平滑作用,提供较为精确的边缘方向信息,边缘定位精度不够高。当对精度要求不是很高时,是一种较为常用的边缘检测方法。

Sobel算子相关代码及Sobel边缘检测效果

Sobel算子并没有将图像的主题与背景严格地区分开来,换言之就是Sobel算子并没有基于图像灰度进行处理,由于Sobel算子并没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意。

Isotropic Sobel算子

Sobel算子另一种形式是(Isotropic Sobel)算子,加权平均算子,权值反比于邻点与中心点的距离,当沿不同方向检测边缘时梯度幅度一致,就是通常所说的各向同性Sobel(Isotropic Sobel)算子。模板也有两个,一个是检测水平边沿的 ,另一个是检测垂直平边沿的 。各向同性Sobel算子和普通Sobel算子相比,它的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。

Prewitt边缘检测算法

Prewitt算子是一种一阶微分算子的边缘检测,利用像素点上下、左右邻点的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用 。其原理是在图像空间利用两个方向模板与图像进行邻域卷积来完成的,这两个方向模板一个检测水平边缘,一个检测垂直边缘。

它的卷积因子如下:

对数字图像f(x,y),Prewitt算子的定义如下:

G(i)=|[f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)]-[f(i+1,j-1)+f(i+1,j)+f(i+1,j+1)]|

G(j)=|[f(i-1,j+1)+f(i,j+1)+f(i+1,j+1)]-[f(i-1,j-1)+f(i,j-1)+f(i+1,j-1)]|

则 P(i,j)=max[G(i),G(j)]或 P(i,j)=G(i)+G(j)

经典Prewitt算子认为:凡灰度新值大于或等于阈值的像素点都是边缘点。即选择适当的阈值T,若P(i,j)≥T,则(i,j)为边缘点,P(i,j)为边缘图像。这种判定是欠合理的,会造成边缘点的误判,因为许多噪声点的灰度值也很大,而且对于幅值较小的边缘点,其边缘反而丢失了。

Prewitt算子对噪声有抑制作用,抑制噪声的原理是通过像素平均,但是像素平均相当于对图像的低通滤波,所以Prewitt算子对边缘的定位不如Roberts算子。

因为平均能减少或消除噪声,Prewitt梯度算子法就是先求平均,再求差分来求梯度。

该算子与Sobel算子类似,只是权值有所变化,但两者实现起来功能还是有差距的,据经验得知Sobel要比Prewitt更能准确检测图像边缘。

Canny边缘检测算法

该算子功能比前面几种都要好,但是它实现起来较为麻烦,Canny算子是一个具有滤波,增强,检测的多阶段的优化算子,在进行处理前,Canny算子先利用高斯平滑滤波器来平滑图像以除去噪声,Canny分割算法采用一阶偏导的有限差分来计算梯度幅值和方向,在处理过程中,Canny算子还将经过一个非极大值抑制的过程,最后Canny算子还采用两个阈值来连接边缘。

1.Canny边缘检测基本原理

(1)图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置。

(2)根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检测算子。

(3)类似与Marr(LoG)边缘检测方法,也属于先平滑后求导数的方法。

2.Canny边缘检测算法:

step1:用高斯滤波器平滑图象;

step2:用一阶偏导的有限差分来计算梯度的幅值和方向;

step3:对梯度幅值进行非极大值抑制;

step4:用双阈值算法检测和连接边缘。

Canny算子相关代码及Canny边缘检测效果

Laplace边缘检测算法

Laplace算子是一种各向同性算子,二阶微分算子,在只关心边缘的位置而不考虑其周围的象素灰度差值时比较合适。Laplace算子对孤立象素的响应要比对边缘或线的响应要更强烈,因此只适用于无噪声图象。存在噪声情况下,使用Laplacian算子检测边缘之前需要先进行低通滤波。所以,通常的分割算法都是把Laplacian算子和平滑算子结合起来生成一个新的模板。

拉普拉斯算子也是最简单的各向同性微分算子,具有旋转不变性。一个二维图像函数的拉普拉斯变换是各向同性的二阶导数,定义

为了更适合于数字图像处理,将拉式算子表示为离散形式:

另外,拉普拉斯算子还可以表示成模板的形式,如下图所示,

拉式算子用来改善因扩散效应的模糊特别有效,因为它符合降制模型。扩散效应是成像过程中经常发生的现象。

Laplacian算子一般不以其原始形式用于边缘检测,因为其作为一个二阶导数,Laplacian算子对噪声具有无法接受的敏感性;同时其幅值产生算边缘,这是复杂的分割不希望有的结果;最后Laplacian算子不能检测边缘的方向;所以Laplacian在分割中所起的作用包括:(1)利用它的零交叉性质进行边缘定位;(2)确定一个像素是在一条边缘暗的一面还是亮的一面;一般使用的是高斯型拉普拉斯算子(Laplacian of a Gaussian,LoG),由于二阶导数是线性运算,利用LoG卷积一幅图像与首先使用高斯型平滑函数卷积改图像,然后计算所得结果的拉普拉斯是一样的。所以在LoG公式中使用高斯函数的目的就是对图像进行平滑处理,使用Laplacian算子的目的是提供一幅用零交叉确定边缘位置的图像;图像的平滑处理减少了噪声的影响并且它的主要作用还是抵消由Laplacian算子的二阶导数引起的逐渐增加的噪声影响。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 噪声
    +关注

    关注

    13

    文章

    1122

    浏览量

    47406
  • 计算机
    +关注

    关注

    19

    文章

    7492

    浏览量

    87908
收藏 人收藏

    评论

    相关推荐

    基于FPGA的实时边缘检测系统设计,Sobel图像边缘检测,FPGA图像处理

    计算机软件实现方式有更快的处理速度。 经验证,系统工作稳定,满足实时性要求 。 MATLAB 与 FPGA无线通信、图像处理、数字信号处理
    发表于 05-24 07:45

    求Matlab图像自编边缘检测算法

    求Matlab图像自编边缘检测算法,多谢了
    发表于 12-03 20:58

    机器视觉图像处理之角点检测技术

    角点是图像很重要的特征,对图像图形的理解和分析有很重要的作用。角点检测(Corner Detection)是计算机视觉系统中用来获得
    发表于 01-22 13:46

    基于Qualcomm FastCv的边缘检测算法详解

    、物质属性变化和场景照明变化等等。 边缘检测图像处理计算机视觉中,尤其是特征提取中的一个
    发表于 09-21 11:45

    基于视觉图像的微小零件边缘检测算法研究

    的热点,目前已有多种边缘检测算法,其中最经典的算法就是Sobel算法。该算法由于计算量小、速度快
    发表于 11-15 16:23

    如何利用FPGA实现Laplacian图像边缘检测器的研究

    和模式识别的主要特征提取手段,在计算机视觉图像分析等应用中起着重要的作用,是图像分析与处理研究
    发表于 07-31 06:38

    医学图像边缘检测算法研究

    边缘检测是医学图像处理中非常重要的一个环节,通过对几种经典边缘检测算法的分析,提出了一种基于Ca
    发表于 07-05 16:50 15次下载

    基于计算机视觉技术的人脸检测系统设计

    通过对基于Haar-like特征的AdaBoost人脸检测算法研究,利用由该算法训练的级联分类器和计算机视觉类库OpenCV进行人脸
    发表于 08-29 14:36 43次下载
    基于<b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>技术的人脸<b class='flag-5'>检测</b>系统设计

    基于改进Canny的图像边缘检测算法

    图像边缘计算机理解图像的重要特征之一。在数字图像中,边缘就是相邻的具有显著不同特征区域间的分界
    发表于 11-02 15:15 19次下载
    基于改进Canny的<b class='flag-5'>图像</b><b class='flag-5'>边缘</b><b class='flag-5'>检测算法</b>

    基于LEON3开源软核处理器的动态图像边缘检测SoC设计

    边缘检测图像处理计算机视觉中的基本问题,边缘
    发表于 02-04 22:38 1150次阅读
    基于LEON3开源软核<b class='flag-5'>处理</b>器的动态<b class='flag-5'>图像</b><b class='flag-5'>边缘</b><b class='flag-5'>检测</b>SoC设计

    计算机视觉常用算法_计算机视觉有哪些分类

    本文主要介绍了计算机视觉常用算法计算机视觉的分类。
    的头像 发表于 07-30 17:34 1.4w次阅读

    计算机视觉应用存在的3大瓶颈问题总结分析

    目前智能制造工业检测领域计算机视觉中的光照问题研究大多从算法上入手。如基于Retinex的X光非均匀钢丝绳芯输送带
    发表于 05-31 09:55 1524次阅读
    <b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>应用存在的3大瓶颈问题总结分析

    计算机视觉的十大算法

    随着科技的不断发展,计算机视觉领域也取得了长足的进步。本文将介绍计算机视觉领域的十大算法,包括它们的基本原理、应用场景和优缺点。这些
    的头像 发表于 02-19 13:26 1239次阅读
    <b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>的十大<b class='flag-5'>算法</b>

    计算机视觉图像处理的区别和联系

    计算机视觉图像处理是两个密切相关但又有明显区别的领域。 1. 基本概念 1.1 计算机视觉
    的头像 发表于 07-09 09:16 1303次阅读

    opencv图像识别有什么算法

    OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,提供了大量的图像处理
    的头像 发表于 07-16 10:40 1037次阅读