固体发动机体空间边缘检测单体素化方法①
2014-03-15于光辉卢洪义
朱 敏,于光辉,卢洪义,李 朋
(海军航空工程学院,烟台 264001)
0 引言
利用Roberts[1]、Prewitt[2]、Sobel[3]、Canny[4]、Zerocross和Log[5]等边缘检测算子检测出的固体发动机边缘检测结果通常大于1个体素,无法准确定位出固体发动机各组成部分的实际边缘,这将限制后继缺陷最大直径、截面周长、表面积、体积等特征参数的精确测量。
二维空间中,单像素化正是一种求取宽度不为1的连续区域的连续中心线的处理方法,通常使用的处理方法包括Hilditch算法[6]、Rosenfeld算法[7]、Zhang并行算法[8]和Deutch算法[9]。本文利用这4种算法对固体发动机断层图像边缘检测结果实施单像素化处理,比较分析得出适用于固体发动机的单像素化方法,并将此方法拓展,提出一种三维空间中的固体发动机边缘检测结果单体素化方法。
1 固体发动机断层图像边缘检测单像素化方法分析
1.1 Hilditch单像素化算法
Hilditch单像素化算法的步骤如下:对图像从左向右从上向下按条件处理每个像素,视为一个迭代周期。在每个迭代周期中,对于每一个像素P,如果它同时满足下述6个条件,则标记它。在当前迭代周期结束时,把所有标记的像素的值设为0(背景)。如果某次迭代周期中不存在标记点(即图像中所有点都不同时满足6个条件),则算法结束,原始待单像素化图像去掉所有标记点即为单像素化后的结果图像。迭代过程中需同时满足的6个条件详见参考文献[6]。
1.2 Rosenfeld单像素化算法
Rosenfeld单像素化算法的步骤如下:对图像从左向右从上向下按条件处理每个像素,视为一个迭代周期。在每个迭代周期中,对于每一个像素P,进行以下6步处理。如果某次迭代周期中不存在需要处理的点,则算法结束,原始待单像素化图像去掉所有被处理点即为单像素化后的结果图像。迭代中6步处理过程详见文献[7]。
1.3 Zhang并行单像素化算法
Zhang并行单像素化算法的步骤如下:对图像从左向右从上向下按条件处理每个像素,视为一个迭代周期。在每个迭代周期中,对于每一个像素P,进行以下4个条件的判断,如果4个条件都满足,则将P置0。如果某次迭代周期中不存在需要处理的点,则算法结束,原始待单像素化图像去掉所有被处理点即为单像素化后的结果图像。迭代中4个判断条件详见文献[8]。
1.4 Deutsch单像素化算法
Deutsch单像素化算法的步骤如下:对图像从左向右从上向下迭代每个像素,视为一个迭代周期。在每个迭代周期中,对于每一个像素P,进行以下5个判断,如果5个条件都满足,则将P置0。如果某次迭代周期中不存在需要处理的点,则算法结束,原始待单像素化图像去掉所有被处理点即为单像素化后结果图像。迭代中的5个判断条件详见文献[9]。
1.5 边缘单像素化结果比较
1.5.1 实验条件
固体发动机断层图像获取设备为我国自主研制的HICT-X450型固体发动机无损检测自动化系统[10-11],断层图像经边缘检测处理后如图1所示,处理前原始图像及边缘检测算法见文献[12-13]。
单像素化方法运行计算机配置如下:CPU为酷睿2、主频1.8 GHZ、内存2 G。
1.5.2 实验结果分析
分别采用Hilditch算法、Rosenfeld算法、Zhang并行算法和Deutch算法对图1进行单像素化处理,处理结果如图2所示。
通过比较可得出:Hilditch算法得到的边缘在转折处非常尖锐,Rosenfeld算法得到的边缘在转折处也较为尖锐,Zhang算法和Deutsch算法得到的边缘在转折处较为平滑。
4种不同的单像素化方法所用的循环迭代次数和总处理时间如表1所示。
图1 边缘检测后的固体发动机断层图像
(a)Hilditch (b)Rosenfeld
(c)Zhang (d)Deutsch
方法HilditchRosenfeldZhangDeutsch循环迭代次数48576处理总时间/s5.271.2195.253.789
Hilditch算法用时最长,迭代次数最多,Zhang算法用时和迭代次数次之,不作为单体素化算法的选择。Rosenfeld算法用时最短,迭代次数最少,Deutsch算法迭代次数比Rosenfeld算法多1次,用时大约是Rosenfeld算法的3倍,但Deutsch算法的单像素化效果较Rosenfeld算法的单像素化效果平滑,因此以Deutsch单像素化算法为基础,提出一种固体火箭发动机三维数据场边缘检测结果的单体素化方法。
2 固体发动机体空间边缘检测单体素化方法
2.1 算法原理
与二维边缘提取类似,三维边缘提取宽度也较大,因此也需要对提取的发动机三维边缘进行单体素化。假设体素P的邻域结构和体素编码如图3所示。图像的边缘用1表示,背景用0表示。
图3 P邻域的结构及编码
算法的步骤如下:对固体发动机边缘三维数据场从左向右、从上向下、从前向后迭代每个像素,视为一个迭代周期。在每个迭代周期中,对于每一个像素P,进行以下13个条件的判断,如果13个条件都满足,则将P置0。如果某次迭代周期中不存在需要处理的点,则算法结束,原始待细化三维数据场去掉所有被处理点即为细化后的结果。进行判断的13个条件如下:
(1)2≤x1+x2+x3+x4+x5+x6+x7+x8≤6;
(2)Sx(P)=1;
(3)x1×x3×x5=0或者Sx(x3)≠1;
(4)x7×x3×x5=0或者Sx(x5)≠1;
(5)2≤x1+x9+x13+x11+x5+x16+x18+x14≤6;
(6)Sy(P)=1;
(7)x1×x13×x5=0或者Sy(x13)≠1;
(8)x18×x13×x5=0或者Sy(x5)≠1;
(9)2≤x3+x10+x13+x12+x7+x17+x18+x15≤6;
(10)Sz(P)=1;
(11)x3×x13×x7=0或者Sz(x13)≠1;
(12)x18×x13×x7=0或者Sz(x7)≠1;
(13)P=1。
Sx(P)的含义是图3中P的邻域,排成序列x1,x2,x3,x4,x5,x6,x7,x8,x1,序列从0变化到1的次数。
Sy(P)的含义是图3中P的邻域,排成序列x1,x9,x13,x11,x5,x16,x18,x14,x1,序列从0变化到1的次数。
Sz(P)的含义是图3中P的邻域,排成序列x3,x10,x13,x12,x7,x17,x18,x15,x3,序列从0变化到1的次数。
2.2 实验验证
实验条件同1.5.1节中所述。图4为单体素化前后的三维边缘检测结果。可见,本文所述方法能够准确单体素化固体发动机的三维边缘。
(a)未单体素化 (b)单体素化后
3 结论
单体素化的边缘是固体发动机体空间缺陷特征参数精确测量的基础。通过对Hilditch算法、Rosenfeld算法、Zhang并行算法和Deutch算法等经典二维单像素化方法比较分析,得出Deutsch算法是最适用于固体发动机断层图像的单像素化方法,并以此方法为基础,向三维空间拓展,提出一种固体发动机体空间边缘检测结果单体素化方法,经实验验证,此方法单体素化结果满足精确测量的需求。
参考文献:
[1] Roberts L G.Machine perception of three-dimensional solids[M].Cambridge:MIT Press,1965:159-197.
[2] Prewitt J.Object enhancement and extraction[M].New York: Academic Press,1970:30-45.
[3] Davi L S.A survey of edge detection techniques[J].CGIP,1975,4:248-270.
[4] Canny John.A computational approach to edge detection[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1986,PAMI-8(6):679-698.
[5] Robinson G S.Edge detection by compass gradient masks[J].CGIP,1975,6(5):753-763.
[6] http://wk.baidu.com/view/78ef110dba1aa8114431d93e.html
[7] 孙燮华.数字图像处理-Visual C #.NET编程与实验[M].北京:机械工业出版社,2010:224.
[8] Zhang T Y,Suen C Y.A fast parallel algorithm for thinning digital patterns[J].Comm. ACM,1984,27(3): 236-239.
[9] 孙燮华.数字图像处理[M].北京:机械工业出版社,2010:175.
[10] 杨兴根,侯本学,张存厚. 固体火箭发动机无损检测自动化系统设计思想[J].飞航导弹,2001,31 (10):41-43.
[11] 杨兴根,陈宇杰.固体火箭发动机专用ICT机械扫描系统[J].推进技术,1999,20(6):106-108.
[12] 于光辉,卢洪义,朱敏,等.基于引力模型的固体火箭发动机CT图像边缘检测[J].核电子学与探测技术,2012,32(2):184-187.
[13] 于光辉,卢洪义,朱敏,等.基于引力模型的固体火箭发动机三维数据场边缘提取[C]//第四届固体导弹技术学术交流会文集.2012.