朱朋?!∷纬£惾A
摘要: 測井曲線的數(shù)字化與可視化有助于測井?dāng)?shù)據(jù)的信息化。利用曲線的輪廓特征,提取出曲線中的輪廓,利用次輪廓特征還原出原曲線。實驗表明,還原出來的曲線和原曲線基本一致,包含的信息沒有丟失,可以應(yīng)用于提取圖紙中測井曲線,并加以推廣到一般圖之中曲線的提取。
關(guān)鍵詞:圖像處理;掃描;像素追蹤;曲線數(shù)字化;灰度值
中圖分類號:TP301.6 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)10-0225-03
在社會很多領(lǐng)域,過去,很多數(shù)據(jù)信息是以曲線行駛繪制在圖紙上的,例如石油測井,地震波記錄等?,F(xiàn)在為了能使這些數(shù)據(jù)信息更統(tǒng)一保存、共享和分析,往往需要把他們從圖紙上的曲線中恢復(fù)出來,即圖紙曲線數(shù)字化。目前,國內(nèi)有許多的類似研究,如四川大學(xué)余艷梅所做的測井曲線智能數(shù)字化系統(tǒng)的設(shè)計與開發(fā),為提高測井曲線數(shù)字化的智能化能力,基于圖像處理和模式識別等理論設(shè)計并開發(fā)了一套測井曲線智能數(shù)字化系統(tǒng)。提出了一種基于局部和整體相結(jié)合的實線智能識別算法和一種基于形態(tài)學(xué)預(yù)處理和自適應(yīng)參數(shù)調(diào)整的虛線智能識別算法[1]。四川大學(xué)的王玲璐提出一種利用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行曲線自動提取的方法。 這種方法先提取曲線段的寬度、走向、分支特征,然后利用BP 神經(jīng)網(wǎng)絡(luò)識別跟蹤曲線交織處的分支,正確預(yù)測曲線的下一段[2]。
1 問題提出
現(xiàn)在大部分油田的老式測井結(jié)果只有圖紙,沒有矢量化的結(jié)果。但是紙質(zhì)結(jié)果在保存和使用方面存在很大的缺陷[3]。為提高測井曲線的數(shù)字化與可視化的能力,基于圖像處理與可視化理論設(shè)計并開發(fā)了一款測井曲線數(shù)字化與可視化的軟件,提出了一種像素矢量追蹤的算法來提高追蹤速度,試驗表明這種算法極大的提高了軟件運(yùn)行速度。
2 問題分析
此方法針對測井曲線的特點提出的,因為測井曲線都是連續(xù)的并且都具有很好的平滑性,這樣的特性十分利于像素追蹤,所以我們可以根據(jù)這樣的特性并且利用它。像素輪廓追蹤法的提出便是對像素的八方向追蹤算法進(jìn)行簡化而得到的,我們舍去了其中向上以及向左向右五個方向,只利用向下的三個方向,大大簡化之前的八方向的繁瑣。我們首先對圖片中的像素進(jìn)行二值化處理[4],方便后面對像素的篩選。之后對篩選后像素的下一行像素進(jìn)行追蹤,邊追蹤邊記錄,最后對所有這些篩選出的像素信息都保存在我們想要的文檔里。
3 算法原理
3.1算法步驟
(1)采用行掃描得到的起始的輪廓點,記錄下該點坐標(biāo)為valuesx,valuesy,以該兩點為當(dāng)前點;
(2)掃描當(dāng)前點的下方像素點,如果兩點像素值均大于閾值,以該起始點為當(dāng)前點,轉(zhuǎn)步驟(4),如果只有一個像素點大于閾值轉(zhuǎn)步驟(3),如果兩點像素值均小于閾值則轉(zhuǎn)(5);
(3)對當(dāng)前點的左右兩個方向進(jìn)行掃描,掃描出這一行的輪廓點valuesx,valuesy并且以這兩點為當(dāng)前點執(zhí)行步驟(2);
(4)對當(dāng)前點的左右兩個方向進(jìn)行掃描,掃描出這一行的兩種輪廓點d1,e1,d2,e2,判斷|e1-d1|和|e2-d2|,取長度較長的一組作為這一行的valuesx,valuesy,以這兩點為當(dāng)前點執(zhí)行步驟(2);
(5)結(jié)束輪廓掃描算法,保存向量valuesx,valuesy到文件中;
3.2算法PAD圖
4 具體實現(xiàn)及程序代碼
4.1 提取點的灰度值
public: int Hui(int x,int y)
{
Bitmap^ bmp=gcnew Bitmap(this->pictureBox1->Image);
Color c;
c=bmp->GetPixel(x,y);
return (c.R+c.G+c.B)/3;
}
4.2 搜索一行看是否符合要求
public: void sousuohang(int y,int a,int m,array
{
valuesx[y]=0;
valuesy[y]=0;
for (int x=1;x { if(Hui(x,y) { valuesx[y]=x; valuesy[y]=x+2; for(int z=x+3;z { if(Hui(z,y)>m) { return; } else { valuesy[y]=z; continue; } } } } return; } 4.3 找到符合要求的第一行 public: void firstline(int &y,int a,int b,int m,array { for (y;y { sousuohang(y,a,m,valuesx,valuesy); if(valuesx[y]==0) { continue;
}
else
{
break;
}
}
}
4.4 找到左端點
public: void LR(int m,int a,int y,int &left,int &right,int x)
{
for (int p=x;p>1;p--)
{
if(Hui(p-1,y) { left=p-1; } else { break; } } for (int p=x;p { if(Hui(p+1,y) { right=p+1; } else { break; } } } 5 算法驗證與結(jié)果分析比較 優(yōu)點:從圖2,圖3中可以看出,此算法可以把原曲線還原提取出來啊。與掃描整個圖片提取曲線相比,此算法需要的存儲空間非常小,只需存儲兩組向量即可,大大節(jié)省了存儲空間。而且所需要的運(yùn)算量十分小,原來N*N的循環(huán)數(shù)減少為N*2—N*N(根據(jù)不同的圖片不同,最壞情況下跟全圖掃描同樣循環(huán)數(shù),一般為N*5左右),極大的增快了油田方面對圖片信息提取的速度。 缺點:還原的曲線還不太精細(xì),對于太細(xì)的曲線還不能很好地還原出來,對于曲線中突然變細(xì)的地方可能會有間斷。對于每個像素的灰度差別無法體現(xiàn),統(tǒng)一按照255的灰度來表示,導(dǎo)致圖片略有失真,這個問題可以通過增加一組向量的儲存空間來解決。 6 結(jié)束語 此算法與其他算法相比對存儲空間要求很小,并且運(yùn)行速度快,對于具有非常龐大數(shù)據(jù)的測井曲線來說是非常有應(yīng)用價值和使用前景的。此外,此算法不僅可以應(yīng)用于測井曲線的提取,同樣也適用于一般的曲線提取,只需事先調(diào)整曲線的方向為自上到下。此算法同樣在輪廓識別、模式識別等方面也有很多應(yīng)用。 參考文獻(xiàn): [1] 余艷梅,羅代升,何小海.測井曲線智能數(shù)字化系統(tǒng)的設(shè)計與開發(fā) [J].計算機(jī)工程與設(shè)計,2008,29(24). [2] 王玲璐,余艷梅,羅代升.一種基于BP網(wǎng)絡(luò)的測井曲線自動提取方法[J].四川大學(xué)學(xué)報,2008,45(1). [3] 孫東利.測井曲線數(shù)字化采集處理方法研究[J].內(nèi)蒙古石油化工,2009(1):92-94. [4] 劉波,余艷梅,羅峰.數(shù)字圖像處理在測井曲線矢量化中的應(yīng)用[J].西南民族大學(xué)學(xué)報,2005,31(1). [5] 左航.測井曲線的自動識別與提取[D].成都:四川大學(xué)電子信息學(xué)院,2003.