郝霜 李金凤 翟迅步
摘 要 针对Canny算法滤波过程中图像细节部分缺失和无法有效去除噪声,并且无法动态识别图像边缘的问题,提出一种融合加窗和自适应加权引导滤波的Canny算法。该算法对Canny算法做出两点改进:一是使用加窗滤波器对图像进行处理,有效滤除噪声,然后对图像进行数学形态学滤波处理,有效增强图像边缘;二是引入分段权值模型对引导滤波算法的正则化参数自适应修正,使其能够根据梯度信息区分边缘和非边缘,从而达到动态识别图像边缘的效果。相比传统Canny算法,改进算法处理后的信噪比提高了1.05~5.22 dB,品质因数提高了0.16~0.35。实验结果表明:改进算法能有效滤除椒盐噪声,识别出比较清晰和完整的边缘。
关键词 Canny算法 边缘检测 加窗滤波器 数学形态学 自适应加权引导滤波
中图分类号 TP14 文献标志码 A 文章编号 1000?3932(2024)01?0086?06
图像的边缘检测是信息处理过程中尤其重要的一个步骤。边缘检测[1]是选择使用某种算法来提取图像中目标和背景灰度值变化最大的交界线。Canny算法可以非常准确地找到图像中尽可能多的边缘,很大程度上能避免图像边缘的遗漏和检测到错误图像的边缘。目前,由于Canny算法有着信噪比比较大、检测边缘的准确度高以及数据计算量比较小的优点,因此广泛应用于图像边缘检测中。Canny算法虽然是一种多级边缘检测[1]算法,但处理的方法和过程相对简单,算法的计算难度系数比较低。其在图像边缘检测中存在着一定的缺点,主要有以下原因:
a. 在图像平滑处理过程中选择的是二维高斯滤波,由于选择高斯标准差σ的随机性,结果就是图像平滑效果不能达到理想的选择,对图像噪声去除不足;
b. 在计算梯度强度和方向过程中,选择使用水平、垂直和对角边缘的4个算子,由于算子的方向比较少,这就容易导致图像边缘的细节缺失,且无法根据梯度动态识别边缘和非边缘的区别。
文献[2]针对图像边缘模糊和边缘不连续的问题,提出了一种改进数学形态学的方法。但是,该算法仅对齿轮这种相对比较简单的图像边缘检测作用比较好。文献[3]在遥感图像边缘检测的过程中提出加窗均值滤波方法,减少采集过程中随机噪声对图像的影响,增加算法对边缘检测的准确性。但是,该算法检测的图像边缘存在部分细节缺失的情况,只合适于边缘比较简单的道路类图像的边缘检测。文献[4]在图像分割中利用引导滤波的保边特性充分保留图像边缘。但是,该算法对噪声敏感,稳定性不好。文献[5]针对提取图像的微弱边缘困难的问题,提出了一种改进MSR的方法,该方法不仅能减少噪声对微弱边缘的影响,还能更好地恢复图像的本质。但是,其在检测比较复杂的图像边缘过程中容易出现边缘冗杂的问题,并且自适应效果的效果比较差。文献[6]提出采用改进后的Canny算法和多尺度形态学对图像进行处理,将两个结果融合得到最后的图像边缘。文献[7]提出在FPGA实现过程中,再引入一个对数单位,将除法变为减法,算法在节省资源的同时不影响阈值。
笔者提出了一种改进的Canny算子边缘检测算法。首先通过加窗滤波器对图像进行处理,有效地消除图像采集过程中产生的噪声,增强图像对随机噪声的抗干扰能力,然后利用数学形态的算法对滤波后的图像进行边缘增强,再引入分段权值模型对引导滤波算法的正则化参数自适应修正,提升自适应判别边缘的能力,使得图像具有很强的鲁棒性。
1 传统Canny算法
传统Canny检测边缘的步骤如下[8]:
a. 图像去噪,利用高斯滤波器对图像进行平滑处理;
b. 计算图像梯度,得到可能的边缘;
c. 对幅值进行非极大值抑制;
d. 双域值筛选。
2 改进后的Canny算法
2.1 改进后的加窗滤波算法
均值滤波可以归于线性滤波其中的一种类型,其算法选用的方法为邻域均值法[3]。均值滤波实质是对图像的每一个像素点周边的像素点进行加权求平均值的计算,然后将计算结果赋值给这个点:
其中,g(x,y)为经过均值滤波后的图像;f(x,y)为原始图像;m为模板s内所有点的数量总和。
在中值滤波算法与邻域均值滤波算法[3]的基础上,笔者提出使用变化的模板(窗口)进行滤波,能更加细致地处理图像去除噪声,进行有针对性地滤波,增加图像采集过程中产生随机噪声时对边缘信息的保护能力。首先对模板内的灰度值进行排序,以中间部分的像数点的数值作为模板中心像素:
其中,G(x,y)为处理后图像;s为模板内不同像素点排序后完成后,其中间部分像素点的集合;m为模板s内所有像素点的总个数。
如果m的值等于1,G(x,y)是中值滤波算法;如果m的最大值为m,最小值为1,G(x,y)是邻域均值滤波算法。由以上可以看出通过不同的中间窗体的尺寸变化,笔者可将中值滤波算法和邻域均值滤波算法相融合,既能增强Canny算法抗噪声的干扰能力,又能降低图像的不连续性,能够很好地抑制假边缘,检测边缘的准确性比较高。
2.2 数学形态学运算
数学形态学处理算法是以数学形态学[2]作为处理图像的方法,数学形态学运算的实质是一种非线性运算,其中主要有膨胀、腐蚀、开运算和闭运算,这些基本算法对于二值图像和灰度图像有不同的作用。
膨胀运算。用3×3的图像矩阵B与二值图像A进行“与”运算,其作用是使得图像的边缘变粗:
C=A☉B(3)
腐蚀运算。用3×3的图像矩阵B与二值图像A进行“或”运算,其作用是使图像的边缘变细:
开运算[9]。将图像先腐蚀后膨胀定义为开运算,其作用是在去除噪声的同时,平滑较大的物体边界,对图像的边界得到了一定程度的补偿,简单来说,就是清除边缘的噪点:
闭运算[9],将图像先膨胀后腐蚀定义为闭运算,其作用是将物体内部的细小空洞填充起来,与接近的物体连接起来,简单来说,就是清除内部空洞:
2.3 改进后的数学形态学运算
对上面提到的问题,笔者提出一个改进算法:
其中,B是3×3的矩阵,B是5×5的矩阵,具体定义如下:
因为B和B有着不同的尺度结构,所以B和B具备不同的去噪能力。较小的尺度对图像细节的保护较好,但容易检测出虚假边缘,去噪能力较弱;大尺度的结构元素反而具有较强的去噪能力,只是在图像细节的保护上稍显逊色,边缘信息也容易丢失。因此,笔者采用复合形式滤波器,在有效过滤噪声的同时,避免了单一结构元素的弊端。在保护图像细节信息的情况下,能够增强图像的微弱边缘。
2.4 自适应加权引导滤波边缘检测算法
引导滤波算法利用引导图像[4]与滤波输出图
像[4]之间的局部线性关系,引导滤波器的引导图像I和滤波器输出Q之间的局部线性关系的模型为:
Q=aI+b,?i∈ω(8)
其中,(a,b)是窗口ω中的常数。
通过式(8)计算线性函数相关系数,在窗口中使以下代价函数最小:
其中,是一个正则化参数;p为滤波器输入。为了避免a过大,需要对滤波器的平滑度进行控制。式(9)的解为:
对式(9)中的正则化参数进行改进,并引入了随梯度信息变化的自适应权值向量t,将原有的参数替换为/t。该改进不仅具有原始的平滑作用,还能够根据梯度信息识别出边缘和非边缘,并自适应地控制平滑效果;同时,还引入分段权值模型,对平滑参数进行了自适应修正:
其中,γ为常数项,防止分母项为零;m为图像梯度;l为梯度阈值。
在进行大量的仿真实验后,放弃了原来对非边缘区域的权值处理方法,并采用了一个固定的常数值1/2。该值被放置在改进后的平滑参数的分母处,从而对于非边缘区域而言,平滑效果会提高原来的两倍,改进后的权值模型为:
通常情况下,式(13)中β值为4。在引入权值模型后,式(10)改写为:
此时,结合2.1和2.2节的操作,笔者提出的算法的输出函数为:
实现两种算法与自适应加权引导滤波边缘检测算法相结合的操作流程如图1所示。
边缘检测算法相结合的操作流程
3 仿真结果与分析
3.1 仿真结果
为了验证笔者所提算法对图像处理的有效性,分别用笔者算法、Canny算法及文献[3]算法对相同的图像进行处理,结果如图2所示。
在图像采集过程中容易产生随机噪声,而噪声对图像检测边缘有比较大的干扰。在实验过程加入椒盐噪声来验证算法对噪声的图像边缘检测的影响。图2a、b分别是原始图像、加入椒盐噪声后的图像,图2c、d是传统Canny算法分别对原图和加噪声图像处理后得到的图像,图2e、f是笔者所提算法分别对原图和加噪声图像处理后得到的图像,图2g、h是文献[3]分别对原图和加噪声图像处理后得到的图像。由图2可以直观地发现,笔者提出算法对图像的处理效果最好,细节部分的边缘检测更加细致,在加入椒盐噪声后,对边缘检测的结果影响比较小,检测到的边缘准确性比较高,保留了更多的细节。
3.2 性能分析
测试边缘检测算法的性能,不仅能通过边缘检测的直观结果来评价边缘检测的性能,而且还能通过信噪比(Signal Noise Ratio,SNR)和品质因数(FM)来评价边缘检测的性能。
信噪比[10]定义如下:
其中,M、N分别为图像长度和宽度上的像素个数,g(i,j)、f(i,j)分别为原始图像和去噪后图像在点(i,j)处的灰度值。SNR的数值越大,表明图像的质量越好,边缘检测算法的性能越好。
品质因数[11]的定义:
其中,NA、NL分别为检测到的边缘和理想边缘;?为错位边缘的补偿系数;d为实际检测到的边缘和图像的理想边缘之间的距离。FM越大,表明理想边缘与实际边缘越接近,边缘检测算法的性能越好。
分别运用笔者算法、传统Canny算法、文献[3]算法和文献[4]算法在无噪声环境下和椒盐噪声环境下的图像进行对比实验,采用SNR和FM评价本算法的滤波效果和边缘识别的准确性。从图像数据集中选取4幅(分别为自行车、螺母、X光、手势)照片,原图大小为256×256,如图3所示。
不同算法对图3图片处理后的SNR和FM值见表1。
根据实验图库,自行车、螺母的图像属于纹理比较复杂并且边缘比较多的图像;X光的图像和手势图像都是纹理比较简单并且边缘比较少的图像;笔者算法的SNR和FM值都高于对比算法,由表1的结果可知笔者算法对图像的边缘检测有着比较明显的效果。
终上所述,在椒盐噪声环境下笔者算法的SNR和FM都有一定程度的增大,笔者所提出的算法效果相比于其他算法较好,有着很好的滤除椒盐噪声的效果,可以有效地保护边缘的信息,能够检测到细节部分的边缘。
4 结束语
细致地分析了传统Canny算法的优缺点,并且提出了改进缺点的方法和步骤,使得改进后的Canny算法具有比较强的鲁棒性。针对Canny算法滤波过程中图像细节部分缺失和无法有效去除噪声,并且无法动态识别图像边缘的问题,提出一种融合加窗和自适应加权引导滤波的Canny算法。该算法能有效地去除椒盐噪声并且增加算法对随机噪声的抗干扰能力,然后通过自适应加权引导滤波算法能够随梯度信息自适应调整平滑力度,检测出更多的边缘细节,增强图像边缘层次感。表明采用笔者提出的算法图像的SNR值和FM值均高于对比算法。
参 考 文 献
[1] 胡佳林,刘波峰,何玉成.基于遗传算法的Canny边缘检测算子在配药机器人中的应用[J].传感器与微系统,2013,32(7):141-143;147.
[2] 杜伟,何毅斌,吴林慧,等.融合改进形态学和LOG算子的齿轮边缘检测[J].武汉工程大学学报,2021,43(6):675-680.
[3] 马为駽,张龚,马传香,等.不同光照条件下含噪遥感图像边缘检测算法[J].吉林大学学报(工学版),2023,53(1):241-247.
[4] 刘丽霞,李宝文,王阳萍,等.改进Canny边缘检测的遥感影像分割[J].计算机工程与应用,2019,55(12):54-58;180.
[5] 包从望,胡才梦,张彩红,等.基于改进Canny算子的齿轮缺陷检测边缘检测算法[J].组合机床与自动化加工技术,2023(1):83-86;91.
[6] 唐守锋,翟少奇,仝光明,等.改进Canny算子与形态学融合的边缘检测[J].计算机工程与设计,2023,44(1):224-231.
[7] GUO L G,WU S T.FPGA Implementation of a Real?Time Edge Detection System Based on an Improved Canny Algorithm[J].Applied Sciences,2023,13(2):870.
[8] 孔珊珊,降爱莲.基于第二代模糊集阈值选择的图像Canny边缘检测[J].计算机应用与软件,2013,30(12):160-162;307.
[9] YU X K,WANG Z W,WANG Y H,et al.Edge Detection of Agricultural Products Based on Morphologically Improved Canny Algorithm[J].Mathematical Problems in Engineering,2021(3):1-10.
[10] 沈卫东,李文韬,刘娟,等.基于改进Canny边缘检测的指针式仪表自动读数算法研究[J].国外电子测量技术,2021,40(2):60-66.
[11] 韩军,张鸿宇.迭代式自适应法在Canny算子中的应用与研究[J].机械设计与制造,2019(12):15-18.