多尺度结构元素形态学边缘检测算法的研究-含Matlab代码

一、引言

使用数字图像处理技术来解决计算机视觉、人工智能、生物遥感器视觉等领域所涉及到的图像问题时,最重要、最关键的一步是提取出图像中最有效、最有用的特征信息。而图像边缘检测技术所研究的对象即图像的边缘,也是图像中一个重要的特征信息,它能比较直观地把图像的形状等一些重要的特性展示出来,是分析图像的重要依据,是后面进一步分析图像的重要基础,对图像边缘提取的质量好坏直接影响着后续对整个图像研究的成功与否。同时,图像的边缘,具有不变特性,不随环境的改变而改变。上世纪60年代,Roberts根据图像边缘灰度具有间断性这一特征提出了一种用梯度值的分布情况来提取图像边缘的方法,即Roberts算子。后来,很多学者在 Roberts 算子的基础上又提出了很多比较经典的边缘检测算子,如Sobel算子,Prewitt算子,Kirsch算子等,其中,前两种算子属于一阶导数边缘检测算子,后一种算子则是二阶导数边缘检测算子。由于以上几种算子是对图像进行求导运算来提取出图像的边缘,很容易受到图像中噪声的干扰,因此会在检测到的图像边缘周围的区域内造成较宽的噪声响应。为了滤除图像中的噪声响应需在后续的工作中用滤波器对图像进一步滤波。 在滤除了图像中的噪声时也导致丢失了检测到的真实边缘细节信息,定位到的边缘较真实边缘偏大,误将噪声当作边缘检测等一些错误,严重影响最终的检测结果。

1982 年,Serra首次提出数学形态学的概念并将它第一次运用到图像分析等领域。利用数学形态学的方法进行边缘提取时结构元素的选取非常重要。在以往的应用中,均采取单一结构元素来对图像的边缘进行检测,这种做法实现比较简单,但会导致丢失部分边缘细节信息而造成误检,无法完整地保留图像的边缘。

二、数学形态学理论概述

数学形态学是以集合论为理论基础,对图像进行形态学变换,实质上是一种针对与集合的运算过程,即形态学结构元素与物体或者形状的集合之间的彼此作用。并且它的结构形式决定了与之所匹配目标的形状特征。结构元素是数学形态学分析图像的基础,采取一定的结构元素与之所对应要处理的图像矩阵进行f(x,y)交、并等操作,以实现对图像的分析操作。其中如何选择合适的结构元素至关重要,选取不同的结构元素会得到不一样的检测结果且差异很大。形态学处理图像的操作是膨胀和腐蚀,同时利用膨胀和腐蚀还能进一步组合出开启操作、闭合操作等一系列操作。

f(x,y)是待处理的图像,g(x,y)是形态学的结构元素,x与y分别表示二维图像的横坐标值与纵坐标值,为了区分,处理后所得图像的横坐标值与纵坐标值分别用s与t表示,在这里插入图片描述和Θ各自表示形态学运算中两种基本运算符,在这里插入图片描述是膨胀运算符,Θ是腐蚀运算符,Df,Dg分别是f和g的定义域,可以得到灰度膨胀、灰度腐蚀各自数学表达式如下。

灰度膨胀运算[1]:

在这里插入图片描述
灰度腐蚀运算:
在这里插入图片描述
由上述两种基本运算进一步组合灰度开启与闭合运算如下:

灰度开启运算:

在这里插入图片描述
灰度闭合运算:

在这里插入图片描述
假设在灰度图像矩阵上移动形态学线型算子进行膨胀运算,则对于某图像块区域进行灰度膨胀运算的步骤如图所示。

在这里插入图片描述

图1 灰度膨胀运算的步骤

假设数字图像矩阵为Uin8类型(范围为0~255),则根据形态学运算的特点,膨胀运算将超出边界的部分指定为图像数据类型的最小值,即超出灰度图像边界的像素值为0;腐蚀运算将超出边界的部分指定为图像数据类型的最大值,即超出灰度图像边界的像素值为255。

多尺度形态学通过选定形态结构元素的类型及尺度来实现,如对图像应用某结构元素进行膨胀运算,对其尺度的选取可根据不同的情况来定。一般而言,随着选取的结构元素尺度的增加,计算量也会增加,甚至可能会对图像自身的几何形状产生影响,进而造成形态处理结果不准确。适当地选择小尺度(一般取2~5)的结构元素,可以在一定程度上提高形态运算的效率及准确率。因此,通过应用不同尺度的结构元素进行边缘检测,再通过加权融合的思想来整合检测到的边缘,可以在一定程度上减小图像噪声的影响,进而提高边缘检测的精度。

根据数学形态学运算的概念,构造形态学多尺度迭代滤波器如下:

在这里插入图片描述
结构元素的形状往往会影响到所匹配目标的准确率,应用形态学进行边缘提取需要综合考虑匹配不同方向的边缘的要求。因此,对于一个给定的结构元素g,可将其设计成5个3×3模板,分别为g1~g5:

在这里插入图片描述
多尺度结构元素的定义为:

在这里插入图片描述
式中,n为尺度参数。

多尺度边缘检测算法为:

在这里插入图片描述
多尺度边缘融合算法为:

在这里插入图片描述
式中,ui为各个尺度边缘检测图像进行融合时的加权系数。

根据信息熵的定义,图像信息熵能够反映图像信息的丰富程度,并直接反映不同边缘所占的比重。因此,可参考加权融合的思想,通过计算不同尺度的边缘图像所含的信息量即信息熵的多少,来计算权值并确定边缘图像的合成。

以信息熵的计算方法为基础,假设数字图像的灰度范围为[0,L-1],则各灰度级像素出现的概率为:

在这里插入图片描述
则该图像的熵为:

在这里插入图片描述

一般而言,可以采用距离度量系统中各个实体的相似度,两个实体之间的距离越小,它们之间的相似度就越大。可通过对不同实体 f a {{f}_{a}} fa f b {{f}_{b}} fb之间的相似度 s i m ( f a , f b ) sim\left( {{f}_{a}},{{f}_{b}} \right) sim(fa,fb)求和并将该和作为整个系统中 f a {{f}_{a}} fa的实体的相似度或支持度,即:

在这里插入图片描述

可选择图像信息熵和实体加权进行边缘图像的融合,通过对各边缘图像的信息熵计算差值作为距离来获取各个实体的相似度或支持度。

因此,边缘图像 f a {{f}_{a}} fa与边缘图像 f b {{f}_{b}} fb的差量算子为:

在这里插入图片描述

差量函数为:

在这里插入图片描述

反支持度函数为:
在这里插入图片描述

为了在保证程序运行效率的前提下尽可能匹配图像不同方向上的边缘,本文选择5个不同的结构元素对图像进行边缘检测,步骤如下:

(1) 应用不同的结构元素对图像进行边缘检测,通过实体加权融合与信息熵结合的方法对边缘图像进行图像融合,获得单尺度下的边缘检测结果Gf1。

(2) 对5个结构元素分别进行膨胀,用膨胀后的5个结构元素在尺度n=2时对图像进行边缘检测,将获得的5个检测结果按照第1步的融合方法进行图像融合,获得尺度n=2时的边缘检测结果Gf2。

(3) 对5个结构元素分别进行膨胀,用膨胀后的5个结构元素在尺度n=3时对图像进行边缘检测,将获得的5个检测结果按照第1步的融合方法进行图像融合,获得尺度n=2时的边缘检测结果Gf3。

(4) 同理,按照上述步骤对5个结构元素进行n个尺度(n一般取2~5)的边缘检测及融合,获得n个不同尺度的融合图像,分别为:Gf1,Gf2,…Gfn。

(5) 根据实体加权融合与信息熵结合的融合方法进行图像融合,得到最终的融合结果。

三、实验验证

图像边缘指像素周围的灰度值发生急剧变化的位置集合,是图像的基本特征之一。图像边缘一般存在于目标、背景和区域之间,因此边缘提取是图像分割过程中经常被采用的关键步骤之一。图像边缘根据样式大致可以分为两种:一种是阶跃状边缘,该类边缘两边像素的灰度值明显不同,呈现阶跃样式:另一种是屋顶状边缘,该类边缘处于灰度值由小到大再到小的峰值转折点处,呈现屋顶样式。因此,这里根据多尺度边缘检测的算法流程,实现图像形态学算子、尺度参数计算,并通过图像形态学变换进行图像边缘的提取。

在这里插入图片描述

图2 检测结果

四、参考文献

[1] 朱地博, 李春贵. 多尺度结构元素形态学边缘检测算法的研究 [J]. 广西科技大学学报, 2017, 28(04): 92-6.

五、Matlab代码获取

代码下载链接如下:
多尺度结构元素形态学边缘检测算法的研究


博主简介:擅长智能优化算法信号处理图像处理机器视觉深度学习神经网络等领域Matlab仿真以及实验数据分析等,matlab代码问题、商业合作、课题选题与指导等均可私信交流


  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研中心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值