摘要:為滿足數(shù)據(jù)顯示方式多樣化的需要,基于VS2008開發(fā)環(huán)境和MFC應(yīng)用程序框架,利用OpenCL豐富的三維圖形繪制功能和顏色渲染功能生成漏磁數(shù)據(jù)的三維視圖。實(shí)際測試結(jié)果表明:三維視圖能夠精確、直觀地反映數(shù)據(jù)變化的真實(shí)性,辨識度高,顏色過渡效果理想,增強(qiáng)可讀性和分析效率,對管道缺陷的識別與判斷具有重要意義。
關(guān)鍵詞:漏磁檢測;三維視圖;OpenCL;三角形剖分;插值
文獻(xiàn)標(biāo)志碼:A
文章編號:1674-5124(2015)02-0084-04
引 言
隨著我國石油天然氣事業(yè)的發(fā)展,油氣管道的建設(shè)和使用也隨之繁榮。運(yùn)輸用管道一般埋在地下或海底,其自身運(yùn)行的安全性難以保證。因此,對在役油氣管道進(jìn)行無損檢測,十分必要。
漏磁檢測是管道內(nèi)檢測應(yīng)用中最廣泛的一種無損檢測技術(shù)。針對檢測器采集到的數(shù)據(jù),數(shù)據(jù)分析系統(tǒng)會對缺陷進(jìn)行分析、識別、量化與評估,并將最終的處理結(jié)果以圖形化的方式呈現(xiàn)給用戶。美國的Tuboscope公司、德國的ROSEN公司最早采用曲線圖對漏磁數(shù)據(jù)進(jìn)行顯示,做出了一定貢獻(xiàn)。國內(nèi)對此方面的研究也卓有成效,天津大學(xué)的魏茂安等研究了漏磁灰度圖像方法,在此基礎(chǔ)上,曹麗娜等又實(shí)現(xiàn)了漏磁偽彩色圖像顯示,進(jìn)一步增強(qiáng)了圖像質(zhì)量。這些二維平面圖雖然可以反映出漏磁信號的變化規(guī)律,但呈現(xiàn)方式單一,辨識度不高,容易出現(xiàn)誤判,漏判等情況,難以滿足用戶對數(shù)據(jù)完整性和準(zhǔn)確性的要求。
文章在準(zhǔn)確定位管道缺陷與漏磁信號的對應(yīng)關(guān)系下,研究一種精確、直觀的漏磁數(shù)據(jù)三維顯示方法,實(shí)現(xiàn)數(shù)據(jù)三維可視化,增強(qiáng)可讀性和分析效率。
1.數(shù)據(jù)格式
采集數(shù)據(jù)主要包含兩部分:磁數(shù)據(jù)和非磁數(shù)據(jù)。磁數(shù)據(jù)是指由磁敏傳感器采集到的漏磁信號,也是圖像顯示的源數(shù)據(jù)。非磁數(shù)據(jù)則主要包括一些與管道狀態(tài)和檢測器狀態(tài)有關(guān)的信息,如壁厚、壓差、里程數(shù)等。以主磁140通道檢測器為例,在檢測過程中,檢測器每走過2.0mm便通過觸發(fā)脈沖信號使所有主磁傳感器采集漏磁信號(每Im采集500次),每采集一次便可得到140個(gè)磁數(shù)據(jù),稱為一個(gè)記錄塊。每收集到50個(gè)記錄塊后便采集一次非磁數(shù)據(jù)得到1個(gè)尾塊數(shù)據(jù)。50個(gè)記錄塊和1個(gè)尾塊數(shù)據(jù)形成1個(gè)數(shù)據(jù)塊,整個(gè)文件中的數(shù)據(jù)就是以數(shù)據(jù)塊的形式存儲的,如圖1所示。
2.三維環(huán)境搭建
2.1 0penGL簡介
開放性圖形庫(open graphics lihrary,OpenGL)是一個(gè)性能卓越的三維圖形標(biāo)準(zhǔn),是圖形硬件的一種軟件接口。它易于使用且功能強(qiáng)大,在Windows系統(tǒng)下可實(shí)現(xiàn)建模、變換、模式設(shè)置、材質(zhì)設(shè)置、紋理映射等諸多功能。處理數(shù)據(jù)流程如圖2所示。
2.2 三維變換
在屏幕上搭建三維場景時(shí),視覺效果通常受4種基本變換的影響,即視點(diǎn)變換、模型變換、投影變換和視口變換。
視點(diǎn)變換在視點(diǎn)坐標(biāo)系中進(jìn)行,與世界坐標(biāo)系遵循右手法則不同,它遵循左手法則,如圖3所示。
當(dāng)矩陣初始化glLoadldentity()后,可將glTrans-latef()作視點(diǎn)變換。函數(shù)參數(shù)(x,y,z)表示視點(diǎn)在視點(diǎn)坐標(biāo)系中移動的位置,這里x=-25.0,y=0.0,z=0.0,意思是將視點(diǎn)沿X負(fù)半軸移動25個(gè)單位。
模型變換在世界坐標(biāo)系中進(jìn)行,可對物體實(shí)施平移glTranslatef()、旋轉(zhuǎn)glRotatef()和縮放glScalef()等操作。
投影變換類似于選擇相機(jī)鏡頭。調(diào)用透視投影函數(shù)glFrustum(),近大遠(yuǎn)小,符合人們習(xí)慣,如圖4所示。在調(diào)用之前使用glMatrixMode()說明當(dāng)前矩陣方式是投影GL_PROJECTION。
視口變換則是將視景體內(nèi)投影的物體顯示在二維的視口平面上。通常用glViewport()來定義一個(gè)視口。參數(shù)值(0,0,winWidth.winHeight)指的是屏幕窗口的實(shí)際尺寸大小。
綜上所述,三維圖形轉(zhuǎn)換的流程如圖5所示。
2.3 坐標(biāo)映射
在確定X坐標(biāo)時(shí),由于每次都是等間隔采集,因此只需獲得當(dāng)前繪制數(shù)據(jù)的記錄號、屏幕最前方數(shù)據(jù)的記錄號以及確定每個(gè)記錄之間的間隔,即可算出該數(shù)據(jù)的橫坐標(biāo):
x=(N-No)n
(l)式中:X——當(dāng)前繪制數(shù)據(jù)的橫坐標(biāo);
N——當(dāng)前繪制數(shù)據(jù)的記錄號;
No——屏幕最前方數(shù)據(jù)的記錄號;
n——記錄之間的間隔。
在確定y坐標(biāo)時(shí),考慮到傳感器陣列沿周向均勻分布,將其映射為鐘點(diǎn)數(shù)。因此只需獲得0號通道鐘點(diǎn)數(shù),傳感器排列方式和通道總數(shù)即可算出第n號通道所占分鐘數(shù),以逆時(shí)針排列為例:式中:To——0號通道所占分鐘數(shù);
n——所求通道的通道號;
M——主磁傳感器的通道總數(shù)。
若Tn<0,則使,最后將所占分鐘數(shù)轉(zhuǎn)化為具體鐘點(diǎn)數(shù)即可。
在確定Z坐標(biāo)時(shí),為防止圖像顯示不完整,我們采用動態(tài)繪圖法,即根據(jù)當(dāng)前可顯示數(shù)據(jù)的最小值作為基準(zhǔn)參考,對實(shí)際數(shù)據(jù)進(jìn)行一定的處理再繪制。計(jì)算公式可表示為
Z=(a-anin)·p/q
(3)式中:a——當(dāng)前繪制數(shù)據(jù)值;
amin——當(dāng)前可顯示數(shù)據(jù)最小值;
q——當(dāng)前可顯示數(shù)據(jù)最大值與最小值的差值;
p——沿Z軸方向的最大繪圖高度。
3.三維曲面生成
OpenGL常用三角形作為基本圖元生成三維圖形和曲面,以保證各個(gè)點(diǎn)在同一平面內(nèi),曲面生成即遍歷各數(shù)據(jù)點(diǎn)。采用三角形剖分算法,在外層的迭代中遍歷所有行,內(nèi)層的迭代中遍歷所有列,列上數(shù)據(jù)點(diǎn)的遍歷順序需要滿足以下條件:
1)數(shù)據(jù)點(diǎn)按每3個(gè)l組的方式進(jìn)行拆分。
2)每組3個(gè)點(diǎn)遵循同一排列次序(順時(shí)針)。
3)相鄰的2組之間存在2個(gè)交集點(diǎn)。
OpenGL提供了多種三角形圖元的繪制方法,其中GL_TRIANGLE_STRIP用于繪制一組相連的三角形。這種方法避免指定相互連接的三角形條帶中重復(fù)出現(xiàn)的頂點(diǎn)。曲面生成過程見圖6。
4.優(yōu)化處理
4.1 數(shù)據(jù)插值
根據(jù)漏磁數(shù)據(jù)特點(diǎn),我們選擇分段線性捅值【9]。在相鄰兩數(shù)值區(qū)間[a,b]中插入(n,-l)個(gè)數(shù)值,將該區(qū)間劃分為n段,各段點(diǎn)為xo=a,XI,x2…xn=b,在各個(gè)區(qū)間內(nèi)做函數(shù)f(x)的線性捅值,設(shè)捅值函數(shù)為g(x)=gi(x),則:
將各個(gè)區(qū)間的捅值函數(shù)gi(x)連接起來,就可以得到了區(qū)間[a,6]的插值函數(shù)g(x),再根據(jù)線性插值的誤差公式進(jìn)行收斂性判斷,從而完成插值操作以構(gòu)造出更多的圖像數(shù)據(jù),將原有的低分辨率的數(shù)據(jù)擴(kuò)充為高分辨率的數(shù)據(jù)進(jìn)行顯示,改善圖像質(zhì)量。
4.2 顏色渲染
Z軸反映了數(shù)據(jù)值大小,還可加入顏色的變化。在OpenGL中可以指定頂點(diǎn)坐標(biāo)的同時(shí)指定頂點(diǎn)顏色,若使用缺省設(shè)置,則會自動生成2個(gè)頂點(diǎn)顏色之間的過渡色。采用的是彩虹編碼法,R、G、B3種變換器的變換函數(shù)表達(dá)式為
5.軟件系統(tǒng)實(shí)現(xiàn)
本數(shù)據(jù)分析軟件系統(tǒng)以Visual Sludi0 2008作為開發(fā)環(huán)境,使用MFC應(yīng)用程序框架對系統(tǒng)進(jìn)行開發(fā)。在該系統(tǒng)中使用OpenGL類庫進(jìn)行了三維視圖設(shè)計(jì)。
5.1 測試結(jié)果
選取2GB容量的勝利油田某段在役管道檢測數(shù)據(jù)進(jìn)行三維顯示,效果理想。由圖7可見,存在兩處磁場強(qiáng)度異常的區(qū)域,紅色區(qū)域突出,數(shù)據(jù)值較高,藍(lán)色區(qū)域凹陷,數(shù)據(jù)值較小,綠色區(qū)域平緩,數(shù)據(jù)值穩(wěn)定。對其分析可知兩處均為腐蝕缺陷。X軸里程范圍為2731.26~2733.96m,y軸鐘點(diǎn)范圍為1:16~5:31,Z軸最大值為173.6Gs(1 Gs=10-4T),最小值為91.2Gs,平均值為106.6Gs。
5.2 輔助操作
三維視圖可實(shí)現(xiàn)圖像拖動、數(shù)據(jù)跳轉(zhuǎn)和視圖縮放??s放效果如圖8所示,其中(a)為原缺陷圖,(b)為放大后的缺陷圖。
此外,本軟件系統(tǒng)還實(shí)現(xiàn)了三維視圖與其他視圖的自由切換,并且支持同時(shí)打開多個(gè)窗口,系統(tǒng)內(nèi)部通過全局映射機(jī)制以保證多種視圖的同步顯示與更新,保證了分析人員能夠全面綜合進(jìn)行比對分析,快速定位管道缺陷,評價(jià)管道使用狀況,給出維護(hù)建議。
6.結(jié)束語
根據(jù)管道漏磁缺陷內(nèi)檢測器提供的漏磁檢測數(shù)據(jù),基于Visual Studi0 2008開發(fā)環(huán)境和MFC應(yīng)用程序框架,利用OpenGL豐富的三維圖形繪制功能和顏色渲染功能生成數(shù)據(jù)三維視圖,經(jīng)過測試,不同磁場強(qiáng)度對應(yīng)不同顏色,從而精確、直觀地顯示出漏磁數(shù)據(jù)的分布特點(diǎn)。此外,圖像拖動、數(shù)據(jù)跳轉(zhuǎn)、縮放等人機(jī)交互操作的實(shí)現(xiàn),強(qiáng)化了數(shù)據(jù)分析功能,幫助用戶在最短時(shí)間內(nèi)了解了檢測數(shù)據(jù)的完整性和準(zhǔn)確性,也有助于對缺陷進(jìn)行識別和量化,大大提高了工作效率和工作質(zhì)量。