汪孝歡,牛顯明,張鵬林,漸春光
(蘭州理工大學(xué) 材料科學(xué)與工程學(xué)院,蘭州 730050)
射線照相檢測具有直觀、可靠、靈敏度和分辨力高等優(yōu)點(diǎn),因而在無損檢測中占有重要地位。利用其結(jié)果可確定焊縫缺陷的類別、位置和大小,以此判斷焊縫是否合格,通常的X射線焊縫底片是由有經(jīng)驗(yàn)的專業(yè)評片人員人工評定,因此,評定結(jié)果的可靠性受評片人員的經(jīng)驗(yàn)限制,結(jié)果往往因人而異[1],偶然性誤差較大。為提高射線檢測效率、準(zhǔn)確率和規(guī)范性,開發(fā)出一套能進(jìn)行計(jì)算機(jī)輔助識別以及缺陷等級評定的軟件系統(tǒng)勢在必行。
隨著計(jì)算機(jī)數(shù)字圖像處理和模式識別技術(shù)的發(fā)展,基于Visual C++面向?qū)ο笈c可視化程序設(shè)計(jì),可對數(shù)字圖像進(jìn)行一系列處理并提取相應(yīng)的特征參數(shù)和數(shù)量。使得利用軟件自動識別出焊縫數(shù)字圖像中缺陷的類型和缺陷的等級的想法成為可能。
文章以某X射線實(shí)時(shí)成像系統(tǒng)為平臺,假設(shè)該系統(tǒng)得到的焊縫數(shù)字圖像均為BMP格式的圓形缺陷,將BMP格式的數(shù)字圖像進(jìn)行一系列處理后可統(tǒng)計(jì)出圓形缺陷的數(shù)量(具體原理已經(jīng)通過試驗(yàn)論證)。試驗(yàn)在已經(jīng)檢測出圓形缺陷的數(shù)量,且需要對缺陷等級進(jìn)行評定的基礎(chǔ)上,以JB/T 4730.2—2005鋼、鎳、銅制承壓設(shè)備熔化焊對接焊焊接射線檢測質(zhì)量分級中的圓形缺陷質(zhì)量等級標(biāo)準(zhǔn)為例,進(jìn)行程序設(shè)計(jì)。試驗(yàn)結(jié)果表明,該方法能準(zhǔn)確算出圓形缺陷等級。
試驗(yàn)軟件平臺為Windows7操作系統(tǒng),Visual C++6.0軟件開發(fā)工具,JB/T 4730.2—2005中鋼、鎳、銅制承壓設(shè)備熔化焊對接焊接接頭射線檢測質(zhì)量分級中的圓形缺陷評定標(biāo)準(zhǔn),Q235碳素鋼BMP格式數(shù)字圖像一張。
圓形缺陷用圓形缺陷評定區(qū)進(jìn)行質(zhì)量分級評定。圓形缺陷評定區(qū)為一個(gè)與焊縫平行的矩形,而母材的公稱厚度為母材的平均厚度值(圖1)。其尺寸為:若母材公稱厚度T≤25mm,評定區(qū)尺寸10mm×10mm;若母材公稱厚度T>25~100mm,評定區(qū)尺寸10mm×20mm;若母材公稱厚度T>100mm,評定區(qū)尺寸10mm×30mm。
圖1 母材公稱厚度和評定區(qū)示意圖
質(zhì)量分級規(guī)定為:① Ⅰ級對接焊接接頭內(nèi)不允許存在裂紋、未融合、未焊透和條形缺陷。② Ⅱ級和Ⅲ級對接焊接接頭內(nèi)不允許存在裂紋、未融合和未焊透。③對接焊接接頭中缺陷超過Ⅲ級者為Ⅳ級。④ 當(dāng)各類缺陷評定的質(zhì)量級別不同時(shí),以最差的質(zhì)量級別作為對接焊接接頭的質(zhì)量級別[2]。
在圓形缺陷評定區(qū)內(nèi),與圓形缺陷邊界線相割的缺陷均應(yīng)劃入評定區(qū)內(nèi),按標(biāo)準(zhǔn)中表10的規(guī)定評定對接焊接接頭的質(zhì)量級別。由于材質(zhì)或結(jié)構(gòu)等原因,進(jìn)行返修可能會對焊接接頭產(chǎn)生不利的后果,各級別的圓形缺陷的點(diǎn)數(shù)可放寬1~2點(diǎn),對致密性要求較高的對接焊接接頭,還應(yīng)將數(shù)字圖像的黑度作為評級的依據(jù)[2]。通常黑度大的圓形缺陷為深孔缺陷,當(dāng)對接焊接接頭存在深孔缺陷時(shí),其質(zhì)量級別應(yīng)評為Ⅳ級,標(biāo)準(zhǔn)詳細(xì)數(shù)據(jù)見表1。
根據(jù)以上數(shù)據(jù)關(guān)系設(shè)計(jì)的分支結(jié)構(gòu)流程圖見圖2。文章以母材公稱厚度m-t≤50mm為例進(jìn)行程序結(jié)構(gòu)流程圖設(shè)計(jì),其他尺寸同理,m-t,m-n分別是母材公稱厚度和圓形缺陷數(shù)量成員變量名。
表1 各級別允許的圓形缺陷的點(diǎn)數(shù)
對圖2程序流程圖進(jìn)行Visual C++面向?qū)ο蟪绦蛟O(shè)計(jì),建立單文檔應(yīng)用程序,插入對話框菜單,在對話框中添加下壓按鈕控件函數(shù)、編輯框控件函數(shù)和成組框函數(shù),將設(shè)計(jì)的程序進(jìn)行調(diào)試和編譯,生成了可視化界面。輸入母材公稱厚度和圓形缺陷數(shù)量兩個(gè)變量,系統(tǒng)自動評定圓形缺陷的等級。對話框的下拉菜單里插入圓形缺陷評級子菜單,該對話框上需要添加的控件有3個(gè)編輯控件、1個(gè)下壓按鈕、6個(gè)靜態(tài)文本框和2個(gè)成組框(各資源實(shí)現(xiàn)代碼略)。
在Windows及其應(yīng)用程序中,消息被表示為一個(gè)數(shù)據(jù)結(jié)構(gòu),并能在對象間傳遞。發(fā)送消息等價(jià)于執(zhí)行參數(shù)所表示消息數(shù)據(jù)的函數(shù)調(diào)用。參數(shù)之一是一個(gè)標(biāo)識該消息的預(yù)定義的消息標(biāo)識符。當(dāng)一個(gè)對象接收到一條消息時(shí),消息標(biāo)識符決定該對象執(zhí)行何種動作[2]。消息傳遞是以函數(shù)調(diào)用的形式來實(shí)現(xiàn)的,這種調(diào)用可以發(fā)生在程序的任何地方。不同的對象能以不同的動作響應(yīng)同樣的消息,這樣一個(gè)特定的消息可以代表一個(gè)通用的事件,而一個(gè)特定的消息可以在不同的對象中引發(fā)不同的動作。
一個(gè)消息可由一個(gè)對象發(fā)送給另一個(gè)對象,或由Windows發(fā)送給某個(gè)對象。對象接收消息的順序是不可預(yù)知的,對象處理每條消息所采取的動作是顯示出現(xiàn)在窗口函數(shù)中的,原理示意圖如圖3。
圖3 Windows應(yīng)用程序的邏輯圖
程序?qū)υ捒驍?shù)據(jù)交換(DDX,Dialog Data Exchange)用于初始化對話框中的控件并獲取用戶的數(shù)據(jù)輸入,而對話框數(shù)據(jù)驗(yàn)證(DDV,Dialog Data Validation)則用于驗(yàn)證對話框中數(shù)據(jù)輸入的有效性[3]。MFC在每個(gè)對話框類中提供了一個(gè)用于重載的虛函數(shù)DoDataExchange來實(shí)現(xiàn)對話框數(shù)據(jù)交換和驗(yàn)證工作。應(yīng)用程序在必要時(shí)可以發(fā)送消息給編輯控制框,預(yù)定義的編輯控制框窗口類的窗口過程將對它們進(jìn)行默認(rèn)處理,向編輯框發(fā)送消息的Windows API函數(shù)是 SendMessage(hWndEdit,msg,wParam,lParam),其中hWndEdit是編輯控制框窗口句柄,其他幾個(gè)參數(shù)代表發(fā)送消息。
若編輯框是對話框的子窗口,向編輯框發(fā)送消息可以調(diào)用函數(shù)SendDlgltemMessage(hwndDlg,idDlgItem,msg,wParam,lParam),其中hwndDlg是對話框窗口句柄,idDlgItem是對話框子控制框標(biāo)識符,在這里指編輯控制框的標(biāo)示符,其他幾個(gè)參數(shù)代表發(fā)送消息。該函數(shù)相當(dāng)于先獲得對話框中編輯控制框句柄,然后再調(diào)用SendMessage函數(shù)。
預(yù)定義的編輯控制框的窗口過程完成編輯控制框不處理的所有消息。實(shí)際上其將大部分的消息都傳遞給DefWindowProc函數(shù),由系統(tǒng)進(jìn)行默認(rèn)處理文章的數(shù)據(jù)交換驗(yàn)證代碼如下所示:
圖4 圓形缺陷數(shù)量統(tǒng)計(jì)邏輯示意圖
圓形缺陷的數(shù)量統(tǒng)計(jì)的原理示意見圖4,其中,a是公稱厚度為26毫米的Q235碳素鋼對接焊接接頭的BMP格式的數(shù)字圖像,將a進(jìn)行局部放大可得到圖4中b所示;再將b進(jìn)行平滑處理、濾波降噪、銳化等增強(qiáng)操作可得c圖所示;然后將c進(jìn)行直方圖處理,二值化處理和閾值分割,便得到d所示;將d進(jìn)行sobel算子邊緣檢測,進(jìn)一步閾值分割,然后腐蝕和細(xì)化處理并查找中心點(diǎn)便可得到e所示,e中便檢測到了缺陷的個(gè)數(shù)、平均半徑、周長和面積,該對話框見f。
對Q235碳素鋼對接焊縫接頭的數(shù)字圖像的圓形缺陷進(jìn)行檢測得知,該數(shù)量為13個(gè)。根據(jù)試驗(yàn)基于Visual C++的程序設(shè)計(jì)方法,對公稱厚度為26mm,缺陷為13個(gè)的數(shù)字圖像進(jìn)行等級評定,根據(jù)表1可知應(yīng)該為Ⅲ級缺陷,程序運(yùn)行結(jié)果見圖5。試驗(yàn)表明,該程序設(shè)計(jì)方案合理。
圖5 圓形缺陷分級評定對話框
(1)文章在已有的焊縫數(shù)字圖像圓形缺陷識別計(jì)數(shù)方法的基礎(chǔ)上,對檢測出的圓形缺陷的數(shù)量進(jìn)行等級評定,為自動評片系統(tǒng)的一個(gè)功能模塊。
(2)雖然程序設(shè)計(jì)方法僅以JB/T 4730.2—2005中鋼、鎳、銅制承壓設(shè)備熔化焊對接焊焊接射線檢測質(zhì)量分級中的圓形缺陷等級評定這一標(biāo)準(zhǔn)為例,進(jìn)行面向?qū)ο笈c可視化程序設(shè)計(jì),但對鈦及鈦合金、鋁制等承壓設(shè)備對接焊接接頭上圓形缺陷的評定標(biāo)準(zhǔn)也可以以同樣的方法進(jìn)行設(shè)計(jì)。因此,具有一定的推廣應(yīng)用價(jià)值。
[1]張曉光,劉金德,林家駿,等.射線焊縫缺陷識別的專家系統(tǒng)[J].礦山機(jī)械,2001(11):3
[2]JB/T 4730.2—2005 承壓設(shè)備熔化焊對接焊接接頭射線檢測質(zhì)量分級[S].
[3]張國峰.Windows應(yīng)用程序設(shè)計(jì) 原理、方法和技巧[M].北京:電子工業(yè)出版社,1994:387-386.