典型微分算子的图像边缘检测对比研究

2022-08-08 01:37冯伟刘光宇曹禹王帅赵恩铭邢传玺
关键词:微分像素点算子

冯伟,刘光宇,曹禹,王帅,赵恩铭,邢传玺

(1.大理大学工程学院,云南 大理 671003;2.云南民族大学电气信息工程学院,云南 昆明 650504)

随着科技的不断发展,图像处理技术越来越多地被应用于工业生产和日常生活的各个领域中,图像边缘检测作为图像处理中最基本且重要的步骤,图像边缘检测技术也成为近些年的研究重点和热点[1-2].到目前为止,研究人员已经提出了多种不同的边缘检测算法,检测效果各有特点,检测结果在准确性、连续性、边缘宽度以及抑制噪声等方面都有很大差异,但不能找到一种有效的算法适用于大多数的图像[3],所以通过分析边缘检测的效果确定每种检测方法的优缺点和适应性, 对后续的图像处理选择合适的边缘检测算法非常重要.

本文采用Roberts 算子、Prewitt 算子、Sobel 算子、Laplace 算子和Canny 算子这5 种微分算子分别对原图和含噪图像进行边缘检测,并分析每种边缘检测方法的优缺点和差异.

1 微分算子的边缘检测原理

1.1 边缘检测原理

图像边缘检测是指从图像中检测出边缘点和边缘线段,然后描述出边缘方向的过程[4].图像信息变化时会出现边缘,由于在描绘图像边缘时,要将图上具有相同关系的边缘连接成边缘线,可以利用如下公式来找到边缘的位置和确定边缘的方向[5-6].

用(x,y)表示为当前像素点位置,f(x,y)为当前像素点位置的灰度值,通过微分计算得到灰度图像的梯度变化,由于灰度图像是一个离散的二维函数,微分计算分别对水平方向x 和垂直方向y 求偏导可以得到梯度变化,计算公式如下

梯度的幅值可以用 | ∇f(x,y)|表示,它代表梯度变化的大小,计算公式如下

用M(x,y)表示梯度幅值,将(2)式化简可得

因此对于图像中的一个像素点(x,y),判定这个像素点是否是边缘点,可以通过设定一个阈值来判断,若微分算子计算后像素点梯度变化幅值大于该阈值,就确定为边缘[7],以此得到含有边缘信息的图像,可以保留图像中最重要的信息特征,剔除不相关的信息而大幅减少图像的数据量[8].

1.2 Roberts 算子

Roberts 算子是简单的一阶线性微分代数算子,它是一种基于斜率梯度的部分微分来计算边缘梯度的方法[9].梯度大小代表边缘的强度,梯度的方向与代表边缘的强度方向垂直(正交).其计算方法如下

Rx和Ry分别表示在水平方向和垂直方向Roberts 算子计算得到的像素点的灰度值, 可以用模板表示,模板中的元素表示算式中相应像素的加权因子,水平方向和垂直方向模板分别为

1.3 Prewitt 算子

Prewitt 微分算子是一阶微分算子,它是通过在像素点和图像内部边缘或者顶点附近处通过找出可以达到一个图像极值的内部来检测边缘,是可以去掉部分伪差的检测算子,对外部图像噪声源的影响具有平滑性和补偿性的作用[10].其计算方法如下

Px和Py分别表示在水平方向和垂直方向Prewitt 算子计算得到的像素点的灰度值,转换为模板得到

1.4 Sobel 算子

Sobel 算子是一阶微分算子,它用于检测像素梯度图像的边缘亮度,Sobel 算子强调了像素位置的效果,从而减少了边缘的模糊[11].它是对当前行或列对应的值加权后,再进行平均和差分,其计算方法如下

Sx和Sy分别表示在水平方向和垂直方向Sobel 算子计算得到的像素点的灰度值,其卷积模板为

1.5 Laplace 算子

Laplace 算子是一个二阶微分线性算子.它是无方向性的算子,它的边缘方向不需要依靠二阶导数,而是表示像素点附近邻域与该点像素点值的差[12].Laplace 算子的计算如下

L(x,y)表示在处Laplace 算子计算得到的像素点的灰度值,转换为模板得到

1.6 Canny 算子

Canny 算子是高斯函数的一阶导数,是对信噪比和定位精度之乘积的最优逼近算子[13],它由以下四个步骤组成.

第一步:对图像高斯滤波.

高斯滤波的主要作用是平滑(模糊)图像,将图像中的噪声减少,也可能增加边缘的宽度.高斯函数是一个类似于正态分布的函数,用σ 表示标准差,经过高斯滤波后得到(x,y)处的灰度值为C(x,y),高斯滤波后的灰度值可由如下公式得到

第二步:计算梯度幅值和梯度方向.

在图像中,梯度被用来表示灰度值的变化程度和方向.计算梯度幅值和梯度方向的方法如公式(3)和公式(4)所示.

第三步:对幅值进行非极大值抑制.

非极大值抑制是用来过滤不是边缘的点,使边缘的宽度尽可能用较少的像素进行表示.计算整个图像的梯度幅值,保留每个方向上梯度幅值最大的点,并将其余的像素点的灰度值置为0[14].

第四步:采用双阈值检测和连接边缘.

选择两个大小不同的阈值,将像素点的灰度值分为三类,它们分别是大于高阈值的像素点、低于低阈值的像素点以及介于高阈值和低阈值之间的像素点,将第一类像素点确定为强边缘点,将灰度值置为1,将低于低阈值的像素点确定为非边缘点,将其灰度值置为0,介于高阈值和低阈值之间的像素点确定为弱边缘点,当弱边缘连接到强边缘时才能确定为边缘[15],以减少边缘的宽度并确保边缘检测的连续性.

2 仿真实验与分析

2.1 实验设计

2.1.1 实验流程 实验流程图如图1 所示.对原始灰度图像添加噪声并滤波, 得到一幅滤波后的灰度图像,对原始灰度图像和滤波后的灰度图像进行直方图对比,分别利用5 种微分算子进行边缘检测,最后分析结果以及评价每种算子抑制噪声的能力.

图1 实验流程Fig.1 Experimental flowchart

以尺寸为256×256、位深度为8 的五叶地锦灰度图像作为原始图像,格式为jpg,如图2 所示为五叶地锦灰度图像.

图2 五叶地锦灰度图像Fig.2 Gray image of virginia creeper

对五叶地锦灰度图像添加方差为0.01 的高斯噪声,并采用5×5 模板的高斯滤波处理五叶地锦灰度图像[16],得到高斯滤波后的灰度图像如图3 所示.

图3 高斯滤波后的灰度图像Fig.3 Gaussian filtered gray image

2.1.2 直方图对比 对图像边缘检测的目的是利用微分算子对图像边缘进行提取,能够准确地显示目标物的信息,所以将最终边缘检测的结果表示为一幅二值化图像,此时图像中只有像素值为0 和1 的两个像素,其中0 代表的是黑色,即利用非边缘像素点充当背景,1 代表白色,即图中目标物的边缘,以此清晰地显示边缘检测的结果.

灰度级直方图是图像的一种统计表达,它反映了该图中不同灰度出现的统计概率,所以可以通过直方图直接观测灰度级出现的频率[17].对五叶地锦灰度图像和高斯滤波后的灰度图像进行直方图统计,可以直观的看到灰度级分布和出现频率的变化,如图4 所示为两幅灰度图像的直方图分布,其中灰度值大小的变化和整体灰度分布的变化存在比较大的差异,如图4-b 所示,使用高斯滤波后的图像灰度变化更加平缓.

图4 两幅灰度图像的直方图分布Fig.4 Histogram distribution of two gray images

2.2 灰度图像效果图和分析

2.2.1 实验结果 使用5 种微分算子分别对五叶地锦灰度图像进行边缘检测,检测结果如图5 所示.

图5 五叶地锦边缘检测结果Fig.5 Edge detection results of Virginia creeper

图5-a~e 分别为Roberts 算子、Prewitt 算子、Sobel 算子、Laplace 算子和Canny 算子对五叶地锦灰度图像边缘的检测结果.图5-a~c 对原始灰度图像边缘检测的效果是较为相似的,对梯度较为明显的部分检测准确性较高,但都对一些梯度变化较小的部分无法准确检测,且存在断点问题,而图3-a 边缘检测宽度比图5-b 和图5-c 稍窄一点.图5-d 对图像边缘检测的连续性不够,出现的断点较多,检测结果差于其它微分算子的检测结果.图5-e Canny 算子检测的边缘宽度较小,可以将梯度变化较小的边缘检测出来,边缘连续性高,检测效果最好.

2.2.2 不同像素比值计算 边缘检测后的图像是一幅二值化图像,图5 中每幅图像只含有两个像素值,每幅图像两种像素值的数量差距比较大,Prewitt 算子和Sobel 算子中的像素值为1 的像素较多,而Canny算子像素值为0 的像素较多.利用直方图可以更加直接的对比两种像素点的数量,由于像素数量较大,为了方便计算与可观测,采用比值计算方法得到两种类型像素数量的比值,令像素点值为0 的全部像素点之和除以像素点为1 的全部像素点之和,比值越大,说明图中像素点为1 的白色越多,比值越小,说明像素点为0 的黑色越多.

如图6 为计算结果,Laplace 算子和Canny 算子的比值比较大,像素点值为1 的像素较少,Prewitt 算子和Sobel 算子的比值较小,像素点值为1 的像素较少,与实验结果一致.

图6 灰度图像边缘检测比值Fig.6 Gray image edge detection ratio

2.3 滤波后灰度图像效果图和分析

2.3.1 实验结果 使用5 种微分算子分别对高斯滤波后的灰度图像进行边缘检测,检测结果如图7 所示.

图7 滤波后的灰度图像检测结果Fig.7 Detection results of filtered gray image

图7-a~e 分别为Roberts 算子、Prewitt 算子、Sobel 算子、Laplace 算子和Canny 算子对滤波后的灰度图像边缘检测结果.图7-a 和图7-d 受噪声干扰影响较大,对图像边缘检测的效果较差.图7-c 和图7-d对滤波后的灰度图像检测结果较为相似,大部分边缘被检测出来,但含有明显的噪声,检测结果一般.图7-e Canny 算子对滤波后的灰度图像的检测结果最优,将大部分的噪声过滤掉,检测连续性较好,边缘定位准确,检测结果显示比较清晰.

2.3.2 不同像素比值计算 在图7 滤波后的灰度图像边缘检测结果中,Laplace 算子的边缘检测效果最差,图像中信息最混乱,含有的噪声最多,所以它的像素值为1 的像素点数量最多,Prewitt 算子和Sobel 算子的去噪能力比Roberts 算子稍好一些,Roberts 算子含有像素值为1 的像素点数量稍多,Canny 算子检测效果最好,边缘清晰且含有的噪声最少,它的像素值为1 的像素点数量最少.采用比值计算方法,令像素点值为0 的全部像素之和除以像素值为1 的全部像素之和,得到两种像素值出现频率的比值.

图8 为经过边缘检测的滤波后灰度图像中两种像素值出现频率的比值.其中Laplace 算子的比值最小, 含有像素值为1 的像素点最多,Roberts 算子、Prewitt 算子和Sobel 算子的像素值为1 的像素点数量比较相近,Canny 算子的比值最大,说明它含有像素值为1 的像素点最少,且和其他算子的比值差距较大,去噪能力相比较其他算子有比较大优势.

图8 滤波后的灰度图像边缘检测比值Fig.8 Edge detection ratio of filtered gray image

2.3.3 数据比较 以五叶地锦灰度图像的检测结果为标准,分析每种微分算子对滤波后的灰度图像检测效果,通过峰值信噪比、均方误差和信噪比等数据比较每种微分算子抑制噪声的能力,实验数据如表1所示.

表1 滤波后灰度图像边缘检测变化数据Tab.1 Change data of gray image edge detection after filtering

在表1 中,Canny 算子检测得到的峰值信噪比的值和信噪比的值最大、均方误差的值最小,说明对噪声的抑制能力最好,与Canny 算子检测后的图像信息一致.峰值信噪比、信噪比和均方误差数据次之的Prewitt 算子和Sobel 算子的检测结果稍弱,Laplace 算子对滤波后灰度图像检测效果最差.

3 小结

本文的微分算子边缘检测方法基于图像灰度值的梯度变化,采用不同的微分算子进行边缘检测和对比分析.通过分析不同算子边缘检测的优缺点和适应性,实验结果显示,原图的检测结果基本与图像中实际的边缘信息相符合,Canny算子检测效果最好,而Sobel 算子和prewitt 算子检测的边缘宽度较大,Roberts算子和Laplace 算子的对边缘的定位稍差一些,且Laplace 算子的断点问题较严重.而在含噪图像的检测中,受噪声影响的检测结果差异性较大,Laplace 算子受噪声影响最大,检测效果最差,Roberts 算子对噪声的抑制能力次之,prewitt 算子和Sobel 算子检测结果相似,但都含有噪声,Canny 算子对噪声抑制能力最强,检测效果最好.

猜你喜欢
微分像素点算子
多飞行器突防打击一体化微分对策制导律设计
一类带有Slit-strips型积分边值条件的分数阶微分方程及微分包含解的存在性
有界线性算子及其函数的(R)性质
基于局部相似性的特征匹配筛选算法
Domestication or Foreignization:A Cultural Choice
跟踪微分器的仿真实验分析与研究
一种X射线图像白点噪声去除算法
基于canvas的前端数据加密
QK空间上的叠加算子
图像采集过程中基于肤色理论的采集框自动定位