(广州航海高等专科学校,广州 510725)
据统计,在众多海难事故中,船舶主动力装置机械故障位居第一,约占事故总数的22%,在船舶机械故障中,船舶柴油机发生故障概率最大,约占45%[1]。可见,船舶主动力装置,尤其是船舶柴油机的运行状况直接影响到船舶的运行安全。而船舶柴油机润滑油中磨损颗粒监测是实现柴油机故障诊断的重要方法,开展磨损颗粒图像识别是判定柴油机磨损性故障的发生、发展及机理判定的有效途径。因此,借助计算机编程对图像信息进行的处理,要把一幅模拟图像通过采样与量化转化为数字图像,实现图像多信息提取,从而实现柴油机磨损颗粒图像的信息化智能识别。
对柴油机油液中分离出来的磨损颗粒通过显微镜拍出的图像都是连续的模拟图像,包含图像的形状和色彩信息。色度学理论认为,任何图像的颜色都可以由红色(red),绿色(green),蓝色(blue)按不同比例混合得到,因此红、绿、蓝被称为三原色[2]。一幅图像的每个像素点颜色都可以用基于位置坐标的三维函数来表示,即:
f(x,y,z)={fR(x,y,z),fG(x,y,z),fB(x,y,z)}
(1)
式中:f(x,y,z)——图像像素点的颜色;
fR(x,y,z)、fG(x,y,z)、fB(x,y,z)——该像素点的红、绿、蓝三种颜色的分量值。
油液柴油机磨损颗粒图像是平面图像,因此式(1)应该调整为
f(x,y)={fR(x,y),fG(x,y),fB(x,y)}
(2)
在数字图像处理中,常用矩阵与向量的方式表达图像。一幅离散化成m×n样本的数字图像是一个整数数组,数学上自然就把它描述成一个矩阵F,即
F=f(x,y)=
(3)
柴油机磨损颗粒图像包含丰富的柴油机故障机理信息,这些信息只有通过一系列算法才能量化,图像的灰度转换是第一步。在RGB模型中,如果fR=fG=fB,则颜色表示一种灰度颜色,其中fR=fG=fB的值叫做灰度值。图像灰度化方法有多种,由于人眼对红、绿、蓝三色的敏感度不同,加权平均法进行灰度,根据重要性及其它指标,将三个分量以不同的权值进行加权平均,其使用公式见式(4)。
f(x,y)=0.3fR(x,y)+0.59fG(x,y)+0.11fB(x,y)
(4)
二值图像是指整幅图像画面内仅黑、白二值的图像 。将256个亮度等级的灰度图像通过适当的阈值选取而获得仍然可以反映图像整体和局部特征的二值化图像。二值图像在数字图像处理中占有非常重要的地位,因为图像经二值化后数据量减小,图像变得简单,感兴趣的目标轮廓更加突出,有利于图像的进一步处理。图像二值化的算法[3]:扫描图像所有像素,对于灰度值大于或等于阈值的像素点将其灰度值设置为255,表示该像素属于特定物体。否则该像素点被排除在物体区域以外,将灰度值设置为0,表示背景点或者非目标点。二值化公式为
(5)
式中:θ——指定阈值。
二值化处理后的磨损颗粒图像还存在着细微的噪声,表现出孤立的小碎点、空洞以及边界存在断点的现象。为了消除这些缺陷,需要采样数学形态学方法[4]。最基本的形态学处理算法包括:膨胀、腐蚀、开运算和闭运算,在图像形态学处理中,常将这些算法组合起来使用。
2.3.1 膨胀
A被B膨胀,记为A⨁B,定义为
(6)
式中:B——结构元素。
式(6)表明A被B膨胀是所有结构元素原点位置的组合的集合,其中映射并平移后的B至少与A有某些部分重叠。
2.3.2 腐蚀
腐蚀的数学定义与膨胀类似,A被B腐蚀记为AΘB,定义为
AΘB={z|(B)Z∩AC=Ø}
(7)
膨胀和腐蚀是一对对偶运算,将其组合便形成图像的开运算和闭运算,表述如下。
开运算:A·B=(AΘB)⨁B
闭运算:A·B=(A⨁B)ΘB
膨胀的主要效果是使目标边界向外部扩张,将和目标区域接触的背景点在一定程度上与目标物相合并,填补了目标区域的某些空洞,消除包含在目标区域内的微小噪声。腐蚀的主要作用是使边界向内收缩,可以消除无意义的目标点,使目标物体细化。开运算去除生成区域内的噪声,闭运算可以连接狭小的缺口,并填充比结构元素小的孔洞,以此来实现图像的平滑。
为了获得磨损颗粒图像的外部轮廓特征,采用“8领域法”掏空磨粒内部点,见图1,A点为一黑色点,且它的8个相邻点都是黑色点,此时该点就为轮廓的内部点,将A点删除,剩下的就是图像的轮廓。轮廓提取完之后,接下来就要让计算机记录下来该图像边界的像素坐标,这就要用到轮廓跟踪算法。
图1 轮廓提取算
轮廓跟踪的基本算法[5]:按照从左到右,从下到上的顺序搜索图像,找到第一个黑点一定是最左下方的边界点,记为A。它的右、右上、上、左上4个领点中至少有一个是边界点,记为B。从B开始找起,按右、右上、上、左上、左、左下、下、右下的顺序找相邻点中的边界点C。如果判断C就是A点,则表明已经转了一圈,程序结束;否则从C继续找,直到找到A为止。图像边界提取全过程见图2,由图2a)到图2b)是掏空图像内部点过程;从图2b)到图2c)是边界轮廓的记录和提取过程。
图2 边界提取全过程
种子填充算法的基本算法是边界填充算法[5]。首先在区域内测试一点(x,y)的像素值,看是否具有原始给定的值,也就是决定该点是否在区域内未被填充过并且该点不是边界点。如果是,则改变其颜色或者亮度值,然后在其4个领域方向上扩展,继续测试,通过反复调用,实现4连通式的区域填充。 种子填充算法过程比较简单,但却是深度递归的。种子填充的效果图见图3。
图3 种子填充算法效果图
以采集船舶柴油机润滑油分析获取的典型层状磨损颗粒为例,见图4a),先进行灰度化,去除图像的彩色信息,见图4b);其次进行二值化,见图4c),灰度化后的磨粒图像经过二值化之后,磨粒与背景基本分离,但出现了内部孔洞和边界不连续特征。再通过图像形态学运算中的膨胀运算,使图像内部孔洞和边界不连接现象得以修复,但图像的面积出现变大,见图4d)。变大的图像经过腐蚀处理后,图像可以缩小细化,得到图4e)。再对图中的所有区域进行轮廓提取,见图4f),可以看出整幅磨粒图像的边框,内部干扰点轮廓和磨粒轮廓三部分。以磨粒区域内部为种子点,进行种子填充,见图4g),可以提取磨粒轮廓的整个区域,排除了图中其它干扰点,从而选取了磨粒图像中有用的信息。
通过上述图像处理算法的组合,实现了磨粒与背景相分离,排除图像干扰,提取有用信息。
船舶柴油机磨损颗粒包含丰富的柴油机零部件磨损状态及故障信息,通过对磨损颗粒图像进行灰度化,大小调整,二值化,形态学处理,轮廓提取,种子填充和链码提取等处理,很好地将完整的磨损颗粒从磨粒图像中分离出来,得到有用的磨粒图像信息,为磨损颗粒的参数化计算和特征提取做好准备。
图4 磨损颗粒图像处理过程
[1] 王家宏,李 俊.船舶柴油机监测与故障诊断方法综述[J].中国水运,2008,8(2):222-223.
[2] 周长发.精通Visual C++图像处理编程[M].北京:电子工业出版社,2006.
[3] 谢凤英,赵丹培.Visual C++数字图像处理[M].北京:电子工业出版社,2008.
[4] GONZALES R C,WOODS R E.数字图像处理[M].2版.朱志刚,译.北京:电子工业出版社,2001.
[5] 张宏林.精通Visual C++数字图像处理典型算法及实现[M].2版.北京:人民邮电出版,2008.