陳鵬
(福建省電子產(chǎn)品監(jiān)督檢驗(yàn)所 福建 福州 350003)
圖像處理被廣泛使用于諸如軍事目標(biāo)識(shí)別[1]和血液測(cè)試[1]等不同場(chǎng)合。本研究針對(duì)X射線照片進(jìn)行圖像處理??偟恼f(shuō)來(lái),商業(yè)軟件功能相當(dāng)強(qiáng)大;然而,商業(yè)軟件經(jīng)常是捆綁式的,所以它們無(wú)論在費(fèi)用、物理平臺(tái)或者操作上都占用大量資源,這就造成本研究的需要,也就是開(kāi)發(fā)簡(jiǎn)單實(shí)用便宜的小型軟件以滿(mǎn)足具體需要。對(duì)于X射線圖像處理的研究已經(jīng)有據(jù)可查[2-3]。 本文討論的是基于文件格式為BMP(BitMap的縮寫(xiě))的X射線照片進(jìn)行三維形狀成型,這也方便以后在無(wú)損探測(cè)等領(lǐng)域中使用神經(jīng)網(wǎng)絡(luò)算法對(duì)物體的厚度及材料等進(jìn)行分析。本文利用編程技巧處理X射線照片以便產(chǎn)生三維實(shí)物圖像并和商業(yè)軟件進(jìn)行交互。下述段落給出了軟件開(kāi)發(fā)、設(shè)計(jì)原理和結(jié)果的闡述。
X射線照片的獲取途徑很多,包括互聯(lián)網(wǎng)。為了很方便地將此類(lèi)BMP圖片裝載到圖片框中 (見(jiàn)圖1,軟件采用Visual Basic 6.0編程[4]),本設(shè)計(jì)編寫(xiě)了一段子程序用來(lái)按比例縮小過(guò)大的圖片從而讓整張照片顯示并使得照片的清晰度不受影響。在此步驟之后,Windows的 API(Application Programming Interface的縮寫(xiě))函數(shù)被使用來(lái)分析圖片中每一像素的R,G,B矢量。 考慮到特定區(qū)域的圖片分析,本設(shè)計(jì)允許用戶(hù)選定具體的矩形區(qū)域進(jìn)行操作。根據(jù)三維物體幾何學(xué),三維物體的運(yùn)動(dòng),包括平移、旋轉(zhuǎn)、縮放、被遮蔽表面的去除以及上色可以在軟件中實(shí)現(xiàn)。同時(shí),本設(shè)計(jì)采用三角形面片離散地近似表示三維模型,其中所產(chǎn)生的X射線照片像素信息分別以Pro-Engineer軟件(.STL文件)和Paraform[5]軟件(.XYZ文件)相應(yīng)格式存放。另外,軟件本身不但能夠產(chǎn)生STL格式的文件,而且可以顯示(見(jiàn)圖2)經(jīng) Pro-Engineer軟件所產(chǎn)生的STL文件格式的各種文件。
圖1 裝載X射線圖像Fig.1 Loading the X-ray image
圖2 STL文件顯示Fig.2 STL file display
圖3 STL格式Fig.3 STL format
圖4 點(diǎn)云格式Fig.4 Point cloud format
由于圖片的區(qū)域可以指定(比如為了檢測(cè)物體的缺陷或者分析某部分高度),本軟件考慮利用鼠標(biāo)選擇矩形區(qū)域。通過(guò)拖動(dòng)鼠標(biāo),該矩形區(qū)域可以被指定或者放棄。為了能夠觀看選擇區(qū)域的三維造型,用戶(hù)可以和使用Pro-Engineer軟件觀看STL格式文件一樣的方式來(lái)查看。同樣,用戶(hù)可以使用本軟件來(lái)查看上述三維造型。另外,通過(guò)和STL數(shù)據(jù)產(chǎn)生類(lèi)似的方法,點(diǎn)云(point cloud)格式的數(shù)據(jù)(.XYZ文件)也在鼠標(biāo)拖動(dòng)下產(chǎn)生。同張金屬重疊(鋁和銅)X射線照片的類(lèi)似區(qū)域的三維造型分別見(jiàn)圖3(STL格式,本軟件顯示)和圖4(點(diǎn)云格式,商業(yè)軟件顯示)。從圖中可以清楚看出重疊部分包含有臺(tái)階,從而確定金屬的塊數(shù)等。
有許多關(guān)于三維物體運(yùn)動(dòng)控制的參考[6]。相關(guān)的控制基本上是原始數(shù)據(jù)包括歸一化及點(diǎn)(本研究就是像素)坐標(biāo)的矩陣操作。很明顯,每個(gè)像素都可以分解為相應(yīng)的R,G,B矢量。為了能夠?qū)⒔o定圖形繪制成三維,本設(shè)計(jì)使用了若干API函數(shù)將成功裝載并完全顯示之后的圖片的每個(gè)像素的R,G,B矢量產(chǎn)生。本設(shè)計(jì)將圖5三維坐標(biāo)系統(tǒng)中的坐標(biāo)X定義為圖5圖片框中的坐標(biāo)X的對(duì)應(yīng)項(xiàng);將圖5三維坐標(biāo)系統(tǒng)中的坐標(biāo)Y定義為圖5圖片框中的坐標(biāo)Y的對(duì)應(yīng)項(xiàng);將圖5三維坐標(biāo)系統(tǒng)中的坐標(biāo)Z定義為圖5圖片框中的像素點(diǎn)(X,Y)的對(duì)應(yīng)R,G,B矢量的合成項(xiàng)。
圖5 圖片框坐標(biāo)系與三維坐標(biāo)系Fig.5 Picture box coordinate&3D plot coordinate
當(dāng)所有的像素點(diǎn)沿著X方向相連(Y為定值),然后再將Y增加1并重復(fù)上述步驟時(shí)可以形成該圖片的三維圖。而且,表面與底部也將分開(kāi) (Z值是個(gè)變量可以因具體情況而改變比例)。同時(shí),隱藏線的去除也是必要的,因?yàn)榭拷x者的前面的線條會(huì)擋住后面線條的視線,這種情況發(fā)生于后面線條的Z值不大于前面線條的Z值的條件下。圖6給出了隱藏線條未去除的錯(cuò)誤成形情況和采取措施后的情況。
圖6 未使用隱藏線去除和已使用隱藏線去除Fig.6 No hidden line removal&hidden line removal
本設(shè)計(jì)還包括表面的上色,物體表面的上色需要收集表面數(shù)據(jù)。按圖7所示,將像素格子分開(kāi)并組成三角形來(lái)形成表面??梢詫⑾袼刈鴺?biāo)定義成格式如(X1,Y1,Z(X1,Y1)), (X2,Y1,Z(X2,Y1))……,其中 Z 是相關(guān) R,G,B 的復(fù)合值。 圖 7 中的三角形被順次連接并進(jìn)而形成圖中X-Y平面上的投影。軟件根據(jù)前后位置找出看得見(jiàn)的三角形并對(duì)其上色,其中還涉及每一個(gè)三角形的歸一化(normalization)處理。
當(dāng)歸一化處理之后,所有的數(shù)據(jù)將被產(chǎn)生成文本格式的STL文件,也就計(jì)算出各個(gè)三角形頂點(diǎn)坐標(biāo)值及三角形平面的法向量從而形成實(shí)體造型顯示于本軟件界面。另外,當(dāng)用戶(hù)對(duì)圖片的運(yùn)動(dòng)進(jìn)行改變(包括旋轉(zhuǎn)移動(dòng)等)時(shí),軟件便重新進(jìn)行歸一化以便從相應(yīng)的視角進(jìn)行表面的上色。圖8給出了人體X射線照片[7]及相應(yīng)的上色后的三維造型。
圖7 像素點(diǎn)和三角形矢量的產(chǎn)生Fig.7 Pixel vector&triangle vector generation
文中論述了一種比較簡(jiǎn)單易行且實(shí)用的基于單張X射線照片的三維造型方法?;诖朔ǖ能浖治鯞MP格式圖片的像素、產(chǎn)生必要的三角形坐標(biāo)系、計(jì)算面矢量值、去除隱藏線并對(duì)三角形表面進(jìn)行上色形成三維圖。軟件產(chǎn)生的數(shù)據(jù)被存儲(chǔ)成STL文件格式或者點(diǎn)云文件格式。通過(guò)金屬重疊照片分析和人體胸部射線照片分析表明本軟件較好地顯示出X射線圖片的三維成形造型效果。
圖8 人體射線照片及三維圖Fig.8 X-ray image and the 3D plot
[1]Hecht-Nielsen R.Neural networks for image analysis[C]//Neural Networks for Vision and Image Processing.Massachusetts:The MIT Press,1992:449-460.
[2]Wojcik R,Majewski S,Parker F R,et al.Single shot dual energy reverse geometry X-radiography [C]//Nuclear Science Symposium.USA:IEEE,1996:811-815.
[3]Engler P,F(xiàn)riedman W D.Review of dual-energy computed tomography techniques[J].Material Evaluation,1990,48(5):623-629.
[4]楊章偉.Visual Basic完全自學(xué)寶典[M].北京:清華大學(xué)出版社,2008.
[5]Paraform Inc.Paraform Software.[EB/OL].[2003-04-08].http://www.paraform.com.
[6]Stephens R.Visual Basic (r)graphics programming:handson applications and advanced color development[M].2nd ed.[s.l.]:John Wiley&Sons,1999.
[7]X-ray Image.[EB/OL].[2012-12-01].http://edu.glogster.com/media/4/26/12/85/26128508.jpg.