汪孝歡,牛顯明,張鵬林,漸春光
(蘭州理工大學 材料科學與工程學院,蘭州 730050)
射線照相檢測具有直觀、可靠、靈敏度和分辨力高等優點,因而在無損檢測中占有重要地位。利用其結果可確定焊縫缺陷的類別、位置和大小,以此判斷焊縫是否合格,通常的X射線焊縫底片是由有經驗的專業評片人員人工評定,因此,評定結果的可靠性受評片人員的經驗限制,結果往往因人而異[1],偶然性誤差較大。為提高射線檢測效率、準確率和規范性,開發出一套能進行計算機輔助識別以及缺陷等級評定的軟件系統勢在必行。
隨著計算機數字圖像處理和模式識別技術的發展,基于Visual C++面向對象與可視化程序設計,可對數字圖像進行一系列處理并提取相應的特征參數和數量。使得利用軟件自動識別出焊縫數字圖像中缺陷的類型和缺陷的等級的想法成為可能。
文章以某X射線實時成像系統為平臺,假設該系統得到的焊縫數字圖像均為BMP格式的圓形缺陷,將BMP格式的數字圖像進行一系列處理后可統計出圓形缺陷的數量(具體原理已經通過試驗論證)。試驗在已經檢測出圓形缺陷的數量,且需要對缺陷等級進行評定的基礎上,以JB/T 4730.2—2005鋼、鎳、銅制承壓設備熔化焊對接焊焊接射線檢測質量分級中的圓形缺陷質量等級標準為例,進行程序設計。試驗結果表明,該方法能準確算出圓形缺陷等級。
試驗軟件平臺為Windows7操作系統,Visual C++6.0軟件開發工具,JB/T 4730.2—2005中鋼、鎳、銅制承壓設備熔化焊對接焊接接頭射線檢測質量分級中的圓形缺陷評定標準,Q235碳素鋼BMP格式數字圖像一張。
圓形缺陷用圓形缺陷評定區進行質量分級評定。圓形缺陷評定區為一個與焊縫平行的矩形,而母材的公稱厚度為母材的平均厚度值(圖1)。其尺寸為:若母材公稱厚度T≤25mm,評定區尺寸10mm×10mm;若母材公稱厚度T>25~100mm,評定區尺寸10mm×20mm;若母材公稱厚度T>100mm,評定區尺寸10mm×30mm。

圖1 母材公稱厚度和評定區示意圖
質量分級規定為:① Ⅰ級對接焊接接頭內不允許存在裂紋、未融合、未焊透和條形缺陷。② Ⅱ級和Ⅲ級對接焊接接頭內不允許存在裂紋、未融合和未焊透。③對接焊接接頭中缺陷超過Ⅲ級者為Ⅳ級。④ 當各類缺陷評定的質量級別不同時,以最差的質量級別作為對接焊接接頭的質量級別[2]。
在圓形缺陷評定區內,與圓形缺陷邊界線相割的缺陷均應劃入評定區內,按標準中表10的規定評定對接焊接接頭的質量級別。由于材質或結構等原因,進行返修可能會對焊接接頭產生不利的后果,各級別的圓形缺陷的點數可放寬1~2點,對致密性要求較高的對接焊接接頭,還應將數字圖像的黑度作為評級的依據[2]。通常黑度大的圓形缺陷為深孔缺陷,當對接焊接接頭存在深孔缺陷時,其質量級別應評為Ⅳ級,標準詳細數據見表1。
根據以上數據關系設計的分支結構流程圖見圖2。文章以母材公稱厚度m-t≤50mm為例進行程序結構流程圖設計,其他尺寸同理,m-t,m-n分別是母材公稱厚度和圓形缺陷數量成員變量名。

表1 各級別允許的圓形缺陷的點數

對圖2程序流程圖進行Visual C++面向對象程序設計,建立單文檔應用程序,插入對話框菜單,在對話框中添加下壓按鈕控件函數、編輯框控件函數和成組框函數,將設計的程序進行調試和編譯,生成了可視化界面。輸入母材公稱厚度和圓形缺陷數量兩個變量,系統自動評定圓形缺陷的等級。對話框的下拉菜單里插入圓形缺陷評級子菜單,該對話框上需要添加的控件有3個編輯控件、1個下壓按鈕、6個靜態文本框和2個成組框(各資源實現代碼略)。
在Windows及其應用程序中,消息被表示為一個數據結構,并能在對象間傳遞。發送消息等價于執行參數所表示消息數據的函數調用。參數之一是一個標識該消息的預定義的消息標識符。當一個對象接收到一條消息時,消息標識符決定該對象執行何種動作[2]。消息傳遞是以函數調用的形式來實現的,這種調用可以發生在程序的任何地方。不同的對象能以不同的動作響應同樣的消息,這樣一個特定的消息可以代表一個通用的事件,而一個特定的消息可以在不同的對象中引發不同的動作。
一個消息可由一個對象發送給另一個對象,或由Windows發送給某個對象。對象接收消息的順序是不可預知的,對象處理每條消息所采取的動作是顯示出現在窗口函數中的,原理示意圖如圖3。

圖3 Windows應用程序的邏輯圖
程序對話框數據交換(DDX,Dialog Data Exchange)用于初始化對話框中的控件并獲取用戶的數據輸入,而對話框數據驗證(DDV,Dialog Data Validation)則用于驗證對話框中數據輸入的有效性[3]。MFC在每個對話框類中提供了一個用于重載的虛函數DoDataExchange來實現對話框數據交換和驗證工作。應用程序在必要時可以發送消息給編輯控制框,預定義的編輯控制框窗口類的窗口過程將對它們進行默認處理,向編輯框發送消息的Windows API函數是 SendMessage(hWndEdit,msg,wParam,lParam),其中hWndEdit是編輯控制框窗口句柄,其他幾個參數代表發送消息。
若編輯框是對話框的子窗口,向編輯框發送消息可以調用函數SendDlgltemMessage(hwndDlg,idDlgItem,msg,wParam,lParam),其中hwndDlg是對話框窗口句柄,idDlgItem是對話框子控制框標識符,在這里指編輯控制框的標示符,其他幾個參數代表發送消息。該函數相當于先獲得對話框中編輯控制框句柄,然后再調用SendMessage函數。
預定義的編輯控制框的窗口過程完成編輯控制框不處理的所有消息。實際上其將大部分的消息都傳遞給DefWindowProc函數,由系統進行默認處理文章的數據交換驗證代碼如下所示:


圖4 圓形缺陷數量統計邏輯示意圖
圓形缺陷的數量統計的原理示意見圖4,其中,a是公稱厚度為26毫米的Q235碳素鋼對接焊接接頭的BMP格式的數字圖像,將a進行局部放大可得到圖4中b所示;再將b進行平滑處理、濾波降噪、銳化等增強操作可得c圖所示;然后將c進行直方圖處理,二值化處理和閾值分割,便得到d所示;將d進行sobel算子邊緣檢測,進一步閾值分割,然后腐蝕和細化處理并查找中心點便可得到e所示,e中便檢測到了缺陷的個數、平均半徑、周長和面積,該對話框見f。
對Q235碳素鋼對接焊縫接頭的數字圖像的圓形缺陷進行檢測得知,該數量為13個。根據試驗基于Visual C++的程序設計方法,對公稱厚度為26mm,缺陷為13個的數字圖像進行等級評定,根據表1可知應該為Ⅲ級缺陷,程序運行結果見圖5。試驗表明,該程序設計方案合理。

圖5 圓形缺陷分級評定對話框
(1)文章在已有的焊縫數字圖像圓形缺陷識別計數方法的基礎上,對檢測出的圓形缺陷的數量進行等級評定,為自動評片系統的一個功能模塊。
(2)雖然程序設計方法僅以JB/T 4730.2—2005中鋼、鎳、銅制承壓設備熔化焊對接焊焊接射線檢測質量分級中的圓形缺陷等級評定這一標準為例,進行面向對象與可視化程序設計,但對鈦及鈦合金、鋁制等承壓設備對接焊接接頭上圓形缺陷的評定標準也可以以同樣的方法進行設計。因此,具有一定的推廣應用價值。
[1]張曉光,劉金德,林家駿,等.射線焊縫缺陷識別的專家系統[J].礦山機械,2001(11):3
[2]JB/T 4730.2—2005 承壓設備熔化焊對接焊接接頭射線檢測質量分級[S].
[3]張國峰.Windows應用程序設計 原理、方法和技巧[M].北京:電子工業出版社,1994:387-386.