您好, 访客   登录/注册

基于改进索贝尔算子的灰度图像边缘检测

来源:用户上传      作者:

  摘 要:边缘检测在图像处理和模式识别等方面发挥着至关重要的作用,文中主要以边缘检测算法为研究对象,重点研究了基于索贝尔算子的检测算法,并在原算法的基础上提出了一种改进的检测算法,通过增加方向梯度、为斜向梯度增加权重等措施来解决传统算法出现的斜向边缘不敏感、边缘粗糙等问题。通过MATLAB平台仿真实验表明,改进后的方法具有局部特性更好、定位更准确的特点,大幅提高了边缘检测效果,增强了目标物体的检测识别效率。
  关键词:灰度图像;边缘检测;索贝尔算子;方向梯度;MATLAB;像素
  中图分类号:TP391 文献标识码:A 文章编号:2095-1302(2020)11-00-02
  0 引 言
  图像是一种最直观的视觉内容,包含较多信息,其中边缘和轮廓是图像的最基本特征,蕴藏着图像中最为关键的信息[1-2]。在计算机图像视觉、模式识别等方面,边缘检测发挥着不可替代的作用[3-5]。从20世纪70年代开始,如何快速、准确地提取边缘信息,找到一种抗噪强、不误检的边缘检测方法一直受到国内外研究学者的重视。本文以边缘检测算法中较为经典的Sobel算子边缘检测方法为主要研究对象,并尝试在原有基础上进一步改进传统的算法以期提高边缘检测精度,优化边缘识别效果。
  1 传统的Sobel算子的灰度图像边缘检测
  Sobel算子的工作原理:对图像的局部像素点进行平均化或加权平均化计算,利用灰度变化设置阈值判断像素点是否为边缘点,实现消除噪音和平滑图像的效果[6-8]。Sobel算子使用水平和垂直两个方向的3×3卷积模板,横向算子与纵向算子如图1所示。
  传统的Sobel算子算法流程如下。
  Step1:利用横向算子、纵向算子模板与图像上的像素点进行卷积运算,得到卷积运算结果。
  Step2:将所有像素进行卷积运算,将卷积运算得到的最大值作为中心点梯度的新灰度值G(x,y)。
  Step3:设置一个合适的阈值TH,用卷积运算得到的新灰度值G(x,y)和阈值TH进行比较[9-10],当TH≥G(x,y)成立时,判断此像素点位于图像边缘,否则将该像素点视为非边缘像素点而忽略。
  根据以上检测流程分析可知,尽管传统的Sobel算子算法的实现具有操作简单,运算容易的优势,但由于传统的算法仅采用两个方向的模板,因此对斜向边缘的检测结果并不是十分理想。如果待检测的图像纹理比较复杂、斜向边缘较多,那么用此算法提取的图像轮廓无法做到清晰可见,最终将影响到后续操作。所以本文针对传统Sobel算子检测边缘算法的不足之处,做了进一步的优化与完善。
  2 改进的Sobel算子的灰度图像边缘检测
  本文提出的Sobel算子边缘检测算法的改进之处主要在于增加方向模板、获取中心梯度、阈值法提取图像边缘。
  2.1 增加方向模板
  在实际生活中,大多数图像的边缘十分复杂,边缘方向主要以斜方向为主,水平和垂直方向较少,因此使用传统Sobel算子算法会出现较大误差,导致检测效果不佳。基于上述分析,可以考虑在传统Sobel算子算法的基础上增加45°以及135°两个方向算子,算子结构如图2所示。
  2.2 获取中心点梯度
  将图像上的像素点与4个方向的算子模板进行卷积运算:
  为了方便计算,将得到的结果的绝对值进行求和运算,并把求出的和作为图像中心点的新灰度值。
  2.3 阈值法提取图像边缘
  采用固定阈值进行边缘二值化处理,在梯度图像的直方图上,灰色图像中占主体部分的背景以及前景主要集中在梯度值较低区域,目标的边缘属于梯度值较高区域,并在直方图上表现为衰减。所以选择固定且合适的阈值即可完成保留目标区域的任务。具体的判断方法如公式(5)所示。
  式中:f'(x, y)是二值化判断后得到的边缘图像;ΔG'(x, y)是经过计算的梯度值;TH是选取的阈值。当f'(x, y)梯度图像的3×3模板中心的像素值大于选定的阈值TH值时,用255表示该点的像素值,并将该点保留为图像边缘,否则将该点视为背景而去除。
  2.4 改进的Sobel算子算法流程
  (1)利用四个方向的算子模板对图像矩阵依次从左到右、从上到下进行每一点的计算,得到各分量的运算结果。
  (2)用各分量的运算结果之和替代像素点新的灰度值,边缘方向由新的灰度值的模板方向决定,可表示为Yi=Ti×Xi,Ymax=Max(Yi),其中:Ti(i=1, 2, 3, 4)分别为改进的四个方向模板;Xi为图像X中某一个大小为3×3的邻域;Ymax是相应邻域中心像素点根据最大值所确定的新灰度值,Ymax的方向即为边缘像素点的方向[6]。
  (3)选择合适的阈值TH并进行二值化处理,然后利用公式(5)进行二值化判断。如果像素点的梯度方向符合或趋向于水平、垂直、斜45°和斜135°边缘走向之一,且梯度大于TH,那么判断此像素点位于图像的边缘,否则将该像素点视为非边缘像素点而忽略。
  3 仿真结果
  在MATLAB R2016a平台上对算法改进前后的Sobel算子边缘检测方法利用斜向边缘较多的两幅灰度图分别进行仿真实验,实验结果如图3和图4所示。
  实验结果表明,算法改进前后图像有明显的变化,传统的Sobel算子算法图像边缘比较粗劣,边缘连续程度低、界限不明显,出现了边缘中断的情况。改进后的Sobel算子边缘检测图像的边缘更详尽且连续,可以检测出原本十分模糊的边缘与更加丰富的细节,以及更清晰可见的目标物体轮廓线。如經典lena图中,可以清晰显示出lena的帽子纹理、五官、头发等;鹅卵石图中更清晰地检测到鹅卵石的边缘和本身所携带的一些花纹。
  4 结 语
  本文针对传统边缘检测算法出现的局限之处,立足于传统的Sobel边缘检测算法,通过增加斜45°以及斜135°两个检测方向的方式,对方向模板进行了完善。通过合理分配四个方向的权重,改进算法,在细节程度、连续程度、细化程度等方面使算法具有更大的优势,以弥补传统算法的不足,最终有效提升传统算法的检测效果。
  参考文献
  [1]虎玲,常霞,纪峰.图像边缘检测方法研究新进展[J].现代电子技术,2018,41(23):32-37.
  [2]王安,王芳荣,郭柏苍,等.基于边缘检测的视差图效果优化[J].计算机应用与软件,2019,36(7):236-241.
  [3]汤东,喻衣鑫,刘波.基于图像边缘检测的作物倒伏面积评估系统[J].农机化研究,2020,42(5):88-93.
  [4]吴一全,刘忠林.遥感影像的海岸线自动提取方法研究进展[J].遥感学报,2019,23(4):582-602.
  [5]董子昊,邵秀丽.多类别的边缘感知方法在图像分割中的应用[J].计算机辅助设计与图形学学报,2019,31(7):1075-1085.
  [6]谭媛,黄辉先,徐建闽,等.基于改进Sobel算子的遥感图像道路边缘检测方法[J].国土资源遥感,2016,28(3):7-11.
  [7]薛宾田,冯子亮.基于图割和Sobel算子的视频分割算法[J].四川大学学报(自然科学版),2015,52(2):281-286.
  [8]李忠海,金海洋,邢晓红.整数阶滤波的分数阶Sobel算子的边缘检测算法[J].计算机工程与应用,2018,54(4):179-184.
  [9]张健,李宏升.基于图论阈值算法的图像分割研究[J].液晶与显示,2014,29(4):592-597.
  [10]韩丽蓉.掩模图像生成时阈值取值的合理性探讨[J].国土资源遥感,2017,29(2):22-28.
转载注明来源:https://www.xzbu.com/8/view-15363960.htm