应用Prewitt算子的织物疵点检测改进算法

2020-03-30 17:47王春妍沈丹峰杨国仲张旭祥
纺织科技进展 2020年3期
关键词:疵点像素点算子

王春妍,沈丹峰,杨国仲,张旭祥

(西安工程大学 机电工程学院,陕西 西安710048)

质量检验是现代工业制造的一个重要方面。在纺织工业生产中,织物的自动检测是保证织物质量的重要手段[1]。长期以来,织物疵点的检测过程仍然采用人工目测的方式进行,由于人工验布成本较高,人为因素影响检测率[2],因此需要对织物疵点进行自动检测,以降低人工检测造成的成本和时间浪费[3]。现有的织物疵点检测方法主要有几类:基于模型分析的方法、基于统计分析的方法、基于频谱分析的方法[4]。基于模型分析的方法通过对织物自身的纹理信息进行建模,获取相关特征检测织物疵点,但其计算量大,对小面积织物疵点的识别能力较弱[5],如杨晓波[6]通过构建GRMF纹理模型自动识别统计特征畸变织物疵点纹理,其计算量大且过程极其复杂,难以检测到面积较小的疵点。基于统计分析的方法通过计算织物图像中纹理的统计特性来检测织物疵点,检测结果易受疵点类型和纹理特征等的影响[7],如陆聪[8]提出了基于灰度LBP共生矩阵的特征提取算法,改变共生矩阵的计算方式,结合LBP的旋转不变性,利用2种算法的优势,减少了计算量,提高了算法的实时性。基于频谱分析的方法将图像从时域变换到频域,然后利用某种能量准则进行织物疵点检测,但很大程度上受限于滤波器的选择,如景军锋等[9]利用遗传算法选取Gabor滤波器最优参数,利用调整后的Gabor滤波器检测织物疵点,准确率提高,且耗时较短。胡克满等[10]提出了一种自适应Canny边缘检测算法,自适应获取高斯滤波参数与图像阈值,改善了Canny算子的自适应性,可以更好地识别织物疵点的边缘信息。

考虑到织物疵点特征与边缘检测算法的工作原理相似[11],疵点边缘的纹理结构相对于正常织物部分会发生明显突变,这些疵点会破坏织物的均匀结构,疵点区域与正常织物区域的分界处会出现密度梯度,故采用边缘检测算法对织物疵点进行检测。相较于其他算法,边缘检测算法具有处理速度快、操作简单等优点。常用的边缘检测算法有Prewitt算子、Canny算子、Laplacian算子、Roberts算子和Sobel算子等[12],其中,Prewitt算子原理为利用图像中邻域像素点的灰度差值达到极值来检测边缘,可以抑制噪声,消除部分伪边缘,然而,在传统边缘检测算子中,噪声平滑能力提高,边缘定位能力会下降,噪声平滑与边缘定位能力近乎呈倒数关系,同时需要人工确定阈值大小,其自适应性[13]会有一定影响。为了克服这个缺点,得到更加准确的边缘信息,本文提出了基于传统Prewitt算子的改进算法检测织物疵点,算法分为三个步骤:(1)增加Prewitt算子的45°和135°方向模板来改善图像的边缘结构;(2)结合非极大值抑制方法[14]对检测到的边缘结构进行细化;(3)采用自适应阈值法去除部分伪边缘。

1 经典Prewitt边缘检测

经典的Prewitt边缘提取算法是一种离散的一阶空域微分算子,通常用于检测图像的边缘。该算法通常是用2个分别检测水平和垂直边缘的方向模板与图像的每个像素点进行邻域卷积来完成[15],它的2个模板如图1所示:

图1 Prewitt算子模板

用图1模板对织物图像中的像素点进行卷积操作和求绝对值,得出图像梯度值的表达式为:

式中,Gx和Gy分别表示水平差分和垂直差分,P(x,y)表示Prewitt算子的梯度幅值,f(x,y)为像素点(x,y)的灰度值。

求出梯度后,选取合适的梯度阈值T,将P与T进行比较,当且仅当P<T时,该点为边缘点,设定其像素值为0,其他的设定为255,通过调节T的大小来获得最佳效果。

基于以上分析,Prewitt算子是一种将差分运算与局部平均相结合来计算3×3邻域内梯度值的方法,虽然可以抑制噪声,但检测到的边缘粗糙,边缘位置难以准确定位。传统Prewitt算子使用水平方向和垂直方向的掩模对图像进行邻域卷积,方向掩模不够完善,其他方向的边缘信息容易被忽略[16]。此外,人们往往根据经验来选取阈值,很难得到精度较高的图像边缘结构。阈值过高,会导致图像部分边缘结构丢失;而阈值过低,则会导致不必要的伪边缘出现[17]。

2 疵点检测算法改进

为了更加精确地检测到疵点,减少后续检测的工作量与复杂程度,对梯度幅值图像P(x,y)进行了高斯滤波、增加45°方向模板和135°方向模板来计算梯度幅值、非极大值抑制以及自适应阈值选取。织物疵点检测算法流程如图2所示。

图2 算法流程图

2.1 高斯滤波

高斯滤波是一种线性平滑滤波[18],可抑制和消除高斯噪声,常用于视觉算法中的预处理阶段,以达到图像平滑和增强的效果。高斯滤波对图像中每个像素点和邻域内的其他像素值实现加权平均操作,具体来说是用一个卷积模板在图像上的每一个像素上移动,得到的邻域内像素的加权平均灰度值作为中心像素点的灰度值:

式中,(x,y)表示像素点坐标,在数字图像处理中为整数;标准差σ表示高斯函数的宽度,通常采用二维零均值离散高斯函数作为平滑滤波器。

2.2 改进梯度幅值和方向计算方法

传统的Prewitt算子在邻域内求有限差分来计算梯度幅值方向,只能检测垂直和水平方向,而不能检测其他方向,导致部分边缘缺失。改进后的算法增加了45°方向算子和135°方向算子,使边缘结构更加完整。改进后的算子表达式为:

改进后的算子模板是:

改进了方向模板后,得到的像素点的梯度幅值P(x,y)是:

设置4个3×3的模板公式(5),4个模板分别对应0°、45°、90°、135°,以点 (x,y)为中心将其邻域内3×3的区域分成两部分,按照这4个模板分别对图像中的每个像素点进行卷积操作和求绝对值,只要任意一个结果与选取的阈值相比,大于或者等于阈值T,则该模板的中心点所对应的像素点的灰度值为4个方向模板结果中的最大值,否则灰度值为0。

2.3 梯度幅值图像的非极大值抑制

对于梯度幅值图像,非极大值抑制是将当前像素点的梯度值与沿其梯度方向的2个相邻梯度值进行比较,当值小于相邻梯度值时,判断像素点为非极大值进行抑制;如果其值大于相邻的梯度值,则判断该像素点为待保留的最大值。将梯度幅值分为0°、45°、90°、135°四部分,分别对应于0°、45°、90°、135°的4个方向上的相邻像素点,可由Prewitt算子计算。因此,梯度幅值图像P(x,y)在(x,y)处的非极大值抑制算法为:

2.4 自适应阈值分割

传统边缘检测需要通过分析图像直方图,人为设置阈值,适用性有限。针对人为选取阈值的不足,提出了一种自适应阈值选取方法,以图像灰度平均值与各灰度级出现概率的乘积作为自适应阈值。

设图像的大小为M×N,灰度值的取值范围为L1,L2,…,LN,用概率分布来描述图像的灰度值分布情况。各灰度值出现的概率为:

令h(Ln)代表图像中灰度值Ln出现的次数,则有式(9)可以推出:

式(10)具有广泛的适用性,可用于不同灰度的图像,克服了传统边缘检测人为选取阈值的局限性。

2.5 二值化

处理后的二值图像M(x,y)为:对梯度幅值图像上的像素点P(x,y),若该点梯度幅值大于阈值,且是局部变化最大的值,即p*(x,y)=1,则该像素点为图像的边缘,即

3 结果与讨论

为了更好地检验本文算法的效果,选取带有百脚、断经、重纬、油污等疵点的大小为256像素×256像素的图像进行试验,试验基本配置为i7-8565U CPU和8G内存,软件编译环境为MATLAB2018b环境,分别采用经典Prewitt算子和本文改进后的算法对织物图像进行处理,检测结果如图3所示,图3(a)是织物疵点原图,图3(b)是基于经典Prewitt算子的检测效果图,图3(c)是基于经典Canny算子的检测效果图,图3(d)是改进算法的检测效果图。

图3 织物疵点检测结果对比

可以看出,采用经典Prewitt算子进行织物疵点的边缘检测,其检测边缘粗糙,人为选取的阈值不能实现与织物疵点灰度值相近的噪声跟疵点的分离,含有大量的正常纹理与噪声信息,说明经典算子检测边缘较粗,所确定的阈值不是最优阈值,易产生伪边缘。从改进后算法的分割效果能够看出,织物疵点与背景纹理分离明显,表明改进后算法不仅可以利用非极大值抑制细化边缘,还通过自适应阈值法确定最佳阈值,使与疵点接近的噪声被分离,去除部分伪边缘。

改进算法的优越性在于:

(1)增加边缘检测模板方向数,提高了疵点边缘完整度;

(2)梯度幅值图像增加了非极大值抑制,减少了图像的噪点与伪边缘;

(3)采用自适应阈值分割方法,以图像灰度平均值与各灰度级出现概率的乘积作为自适应阈值,等同于动态局部阈值分割,进一步提高了二值化图像的准确度。

进一步地,扩大试验范围,选取130件某棉纺织厂人工验后的疵布,在恒定光源下,用工业相机拍照,采用本文算法检测后的统计结果见表1。

表1 疵点检测结果统计

4 结语

在经典Prewitt算子的基础上,提出了一种改进的织物疵点检测算法,剖析了经典Prewitt算子的检测机理和操作流程。针对经典Prewitt算子的不足,增加45°和135°方向模板,结合非极大值抑制方法以及自适应阈值算法,实现织物疵点的检测。研究结果表明,用改进算法有效解决了Prewitt算子检测出的边缘粗糙、人为选取阈值易误判边缘点的问题,得到的边缘细节明显,伪边缘相对较少,实现了阈值智能化,具有较好的自适应性,提高了织物疵点的检测精度。与其他方法相比,边缘检测算法最重要的优势是操作简单、耗时少,将其应用于低噪声图像或优化图像处理方法的图像中,可以得到更好的结果。

猜你喜欢
疵点像素点算子
基于Cascade RCNN 和二步聚类的织物疵点检测
有界线性算子及其函数的(R)性质
图像二值化处理硬件加速引擎的设计
基于总变差的织物疵点分割方法
喷丝板疵点检测系统设计
基于局部相似性的特征匹配筛选算法
Domestication or Foreignization:A Cultural Choice
基于FPGA的图像疵点处理设计与实现
一种X射线图像白点噪声去除算法
基于canvas的前端数据加密