亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

二維數(shù)字巖心的連通區(qū)域識(shí)別方法及裝置與流程

文檔序號(hào):11277322閱讀:300來(lái)源:國(guó)知局
二維數(shù)字巖心的連通區(qū)域識(shí)別方法及裝置與流程

本發(fā)明涉及計(jì)算機(jī)圖像處理領(lǐng)域,尤其涉及一種二維數(shù)字巖心的連通區(qū)域識(shí)別方法及裝置。



背景技術(shù):

數(shù)字巖心技術(shù)是近年興起的巖心分析的有效方法,在常規(guī)砂巖和碳酸鹽巖等巖心分析領(lǐng)域應(yīng)用廣泛,獲得了極大的成功?;驹硎腔诙S掃描電鏡圖像或三維ct掃描圖像,運(yùn)用計(jì)算機(jī)圖像處理技術(shù),通過(guò)一定的算法完成數(shù)字巖心重構(gòu)。

數(shù)字巖心建模方法可分為兩大類:物理實(shí)驗(yàn)方法和數(shù)值重建方法。物理實(shí)驗(yàn)方法均借助高倍光學(xué)顯微鏡、掃描電鏡或ct成像儀等高精度儀器獲取巖心的平面圖像,之后對(duì)平面圖像進(jìn)行重建即可得到數(shù)字巖心;數(shù)值重建方法則借助巖心平面圖像等少量資料,通過(guò)圖像分析提取建模信息,之后采用某種數(shù)學(xué)方法建立數(shù)字巖心。上述建立二維數(shù)字巖心的方法,相鄰連通區(qū)域之間沒(méi)有很好地進(jìn)行區(qū)分標(biāo)識(shí),不利于研究人員查看分析。因此,亟需一種二維數(shù)字巖心的連通區(qū)域識(shí)別方法。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明提供一種二維數(shù)字巖心的連通區(qū)域識(shí)別方法及裝置,用以解決現(xiàn)有技術(shù)中的二維數(shù)字巖心相鄰連通區(qū)域之間區(qū)分不明顯的技術(shù)問(wèn)題。

本發(fā)明一方面提供一種二維數(shù)字巖心的連通區(qū)域識(shí)別方法,包括:

數(shù)據(jù)讀取步驟,讀取二維數(shù)字巖心文件,所述二維數(shù)字巖心文件包括能夠表征二維數(shù)字巖心的數(shù)據(jù),其中,二維數(shù)字巖心的數(shù)據(jù)用于表示多個(gè)像素點(diǎn),每個(gè)像素點(diǎn)包括像素值和用于確定像素點(diǎn)位置的二維坐標(biāo),二維坐標(biāo)分別用x和y表示;

數(shù)據(jù)分塊步驟,對(duì)二維數(shù)字巖心數(shù)據(jù)進(jìn)行分塊處理,以獲得多個(gè)子塊;

掃描線獲取步驟,對(duì)各子塊的二維數(shù)字巖心數(shù)據(jù)進(jìn)行掃描,以獲取掃描線;

子連通區(qū)域獲取步驟,在各子塊內(nèi)根據(jù)掃描線生成子連通區(qū)域;

父連通區(qū)域獲取步驟,對(duì)子連通區(qū)域進(jìn)行合并處理,以生成父連通區(qū)域;

標(biāo)記步驟,對(duì)各父連通區(qū)域采用不同的顏色進(jìn)行標(biāo)記。

進(jìn)一步的,掃描線獲取步驟,具體包括:

對(duì)每個(gè)子塊分別進(jìn)行像素點(diǎn)篩選,以獲得優(yōu)選像素點(diǎn),其中,優(yōu)選像素點(diǎn)為像素值小于第一預(yù)設(shè)閾值的像素點(diǎn);

在每個(gè)子塊內(nèi)獲取掃描線的長(zhǎng)度大于第二預(yù)設(shè)閾值的掃描線,所述掃描線的長(zhǎng)度為x方向上相鄰的優(yōu)選像素點(diǎn)的連線長(zhǎng)度,所述掃描線包括組成掃描線長(zhǎng)度的各個(gè)優(yōu)選像素點(diǎn)。

進(jìn)一步的,子連通區(qū)域獲取步驟,具體包括:

初始化子步驟,初始化未分組掃描線,初始化子連通區(qū)域?yàn)榭?,其中,未分組掃描線包括所有的掃描線;

當(dāng)前掃描線選定子步驟,在未分組掃描線內(nèi)任意選定一條掃描線作為當(dāng)前掃描線,并將當(dāng)前掃描線添加到子連通區(qū)域中,且將當(dāng)前掃描線從未分組掃描線中刪除;

子連通區(qū)域生成子步驟,在當(dāng)前掃描線的y方向上查找是否有相鄰的掃描線,若有,將其添加到子連通區(qū)域中,并將其設(shè)置為當(dāng)前掃描線,且將當(dāng)前掃描線從未分組掃描線中刪除,轉(zhuǎn)子連通區(qū)域生成子步驟執(zhí)行,若無(wú),保存此時(shí)的子連通區(qū)域,然后設(shè)置子連通區(qū)域?yàn)榭?,判斷未分組掃描線是否為空,若不為空,轉(zhuǎn)當(dāng)前掃描線選定子步驟執(zhí)行,以獲得多個(gè)子連通區(qū)域。

進(jìn)一步的,父連通區(qū)域獲取步驟,具體包括:

判斷分屬于相鄰兩個(gè)子塊的兩個(gè)子連通區(qū)域的范圍是否有交集,若有交集,則將兩個(gè)子塊的掃描線按照y值排序,對(duì)于每個(gè)y值,在兩個(gè)子塊中各取y-1,y,y+1這三行y值對(duì)應(yīng)的掃描線,形成兩組y值掃描線;

若兩組y值掃描線中有相鄰的掃描線,則將兩個(gè)子連通區(qū)域合并,以形成父連通區(qū)域。

進(jìn)一步的,標(biāo)記步驟具體包括:

中心點(diǎn)獲取子步驟,獲取父連通區(qū)域的中心點(diǎn),并將中心點(diǎn)利用三角剖分連接,初始化未標(biāo)記中心點(diǎn),其中,未標(biāo)記中心點(diǎn)包括所有中心點(diǎn);

判斷子步驟,判斷未標(biāo)記中心點(diǎn)是否為空,若不為空,則轉(zhuǎn)標(biāo)記子步驟執(zhí)行;

標(biāo)記子步驟,將未標(biāo)記中心點(diǎn)中所連的邊的數(shù)量最多的中心點(diǎn)設(shè)置為當(dāng)前中心點(diǎn),對(duì)當(dāng)前中心點(diǎn)所在的父連通區(qū)域進(jìn)行顏色標(biāo)記,其顏色要與當(dāng)前中心點(diǎn)有邊連接且標(biāo)記過(guò)的父連通區(qū)域的顏色不同;

設(shè)置子步驟,將所有與當(dāng)前中心點(diǎn)有邊相連的中心點(diǎn)所連接的邊的數(shù)量減1,將當(dāng)前中心點(diǎn)從未標(biāo)記中心點(diǎn)中刪除,轉(zhuǎn)判斷子步驟執(zhí)行。

本發(fā)明另一方面提供一種二維數(shù)字巖心的連通區(qū)域識(shí)別裝置,包括:

數(shù)據(jù)讀取模塊,用于讀取二維數(shù)字巖心文件,所述二維數(shù)字巖心文件包括能夠表征二維數(shù)字巖心的數(shù)據(jù),其中,二維數(shù)字巖心的數(shù)據(jù)用于表示多個(gè)像素點(diǎn),每個(gè)像素點(diǎn)包括像素值和用于確定像素點(diǎn)位置的二維坐標(biāo),二維坐標(biāo)分別用x和y表示;

數(shù)據(jù)分塊模塊,用于對(duì)二維數(shù)字巖心數(shù)據(jù)進(jìn)行分塊處理,以獲得多個(gè)子塊;

掃描線獲取模塊,用于對(duì)各子塊的二維數(shù)字巖心數(shù)據(jù)進(jìn)行掃描,以獲取掃描線;

子連通區(qū)域獲取模塊,用于在各子塊內(nèi)根據(jù)掃描線生成子連通區(qū)域;

父連通區(qū)域獲取模塊,用于對(duì)子連通區(qū)域進(jìn)行合并處理,以生成父連通區(qū)域;

標(biāo)記模塊,用于對(duì)各父連通區(qū)域采用不同的顏色進(jìn)行標(biāo)記。

進(jìn)一步的,掃描線獲取模塊具體用于:

對(duì)每個(gè)子塊分別進(jìn)行像素點(diǎn)篩選,以獲得優(yōu)選像素點(diǎn),其中,優(yōu)選像素點(diǎn)為像素值小于第一預(yù)設(shè)閾值的像素點(diǎn);

在每個(gè)子塊內(nèi)獲取掃描線的長(zhǎng)度大于第二預(yù)設(shè)閾值的掃描線,所述掃描線的長(zhǎng)度為x方向上相鄰的優(yōu)選像素點(diǎn)的連線長(zhǎng)度,所述掃描線包括組成掃描線長(zhǎng)度的各個(gè)優(yōu)選像素點(diǎn)。

進(jìn)一步的,子連通區(qū)域獲取模塊具體包括:

初始化子模塊,用于初始化未分組掃描線,初始化子連通區(qū)域?yàn)榭眨渲?,未分組掃描線包括所有的掃描線;

當(dāng)前掃描線選定子模塊,用于在未分組掃描線內(nèi)任意選定一條掃描線作為當(dāng)前掃描線,并將當(dāng)前掃描線添加到子連通區(qū)域中,且將當(dāng)前掃描線從未分組掃描線中刪除;

子連通區(qū)域生成子模塊,用于在當(dāng)前掃描線在y方向上查找是否有相鄰的掃 描線,若有,將其添加到子連通區(qū)域中,并將其設(shè)置為當(dāng)前掃描線,且將當(dāng)前掃描線從未分組掃描線中刪除,觸發(fā)子連通區(qū)域生成模塊,若無(wú),保存此時(shí)的子連通區(qū)域,然后設(shè)置子連通區(qū)域?yàn)榭眨袛辔捶纸M掃描線是否為空,若不為空,觸發(fā)當(dāng)前掃描線選定模塊,以獲得多個(gè)子連通區(qū)域。

進(jìn)一步的,父連通區(qū)域獲取模塊,具體用于:

判斷分屬于相鄰兩個(gè)子塊的兩個(gè)子連通區(qū)域的范圍是否有交集,若有交集,則將兩個(gè)子塊的掃描線按照y值排序,對(duì)于每個(gè)y值,在兩個(gè)子塊中各取y-1,y,y+1這三行y值對(duì)應(yīng)的掃描線,形成兩組y值掃描線;

若兩組y值掃描線中有相鄰的掃描線,則將兩個(gè)子連通區(qū)域合并,以形成父連通區(qū)域。

進(jìn)一步的,標(biāo)記模塊具體包括:

中心點(diǎn)獲取子模塊,用于獲取父連通區(qū)域的中心點(diǎn),并將中心點(diǎn)利用三角剖分連接,初始化未標(biāo)記中心點(diǎn),其中,未標(biāo)記中心點(diǎn)包括所有中心點(diǎn);

判斷子模塊,用于判斷未標(biāo)記中心點(diǎn)是否為空,若不為空,則觸發(fā)標(biāo)記子模塊;

標(biāo)記子模塊,用于將未標(biāo)記中心點(diǎn)中所連的邊的數(shù)量最多的中心點(diǎn)設(shè)置為當(dāng)前中心點(diǎn),對(duì)當(dāng)前中心點(diǎn)所在的父連通區(qū)域進(jìn)行顏色標(biāo)記,其顏色要與當(dāng)前中心點(diǎn)有邊連接且標(biāo)記過(guò)的父連通區(qū)域的顏色不同;

設(shè)置子模塊,用于將所有與當(dāng)前中心點(diǎn)有邊相連的中心點(diǎn)所連接的邊的數(shù)量減1,將當(dāng)前中心點(diǎn)從未標(biāo)記中心點(diǎn)中刪除,觸發(fā)判斷子模塊。

本發(fā)明提供的二維數(shù)字巖心的連通區(qū)域識(shí)別方法及裝置,首先讀取二維數(shù)字巖心文件,然后對(duì)二維數(shù)字巖心數(shù)據(jù)進(jìn)行分塊處理,以獲得多個(gè)子塊;再對(duì)各子塊的二維數(shù)字巖心數(shù)據(jù)進(jìn)行掃描,以獲取掃描線,并在各子塊內(nèi)根據(jù)掃描線生成子連通區(qū)域,然后對(duì)子連通區(qū)域進(jìn)行合并處理,以生成父連通區(qū)域,最后對(duì)各父連通區(qū)域采用不同的顏色進(jìn)行標(biāo)記。利用本發(fā)明提供的這種方法不僅可以精確獲得二維數(shù)字巖心的連通區(qū)域,而且可以對(duì)二維數(shù)字巖心相鄰連通區(qū)域之間進(jìn)行區(qū)分,為研究人員進(jìn)行分析研究奠定基礎(chǔ)。

附圖說(shuō)明

在下文中將基于實(shí)施例并參考附圖來(lái)對(duì)本發(fā)明進(jìn)行更詳細(xì)的描述。其中:

圖1為根據(jù)本發(fā)明實(shí)施例一的二維數(shù)字巖心的連通區(qū)域識(shí)別方法的流程示意圖;

圖2為根據(jù)本發(fā)明實(shí)施例二的二維數(shù)字巖心的連通區(qū)域識(shí)別方法的流程示意圖;

圖3為根據(jù)本發(fā)明實(shí)施例三的二維數(shù)字巖心的連通區(qū)域識(shí)別裝置的結(jié)構(gòu)示意圖;

圖4為根據(jù)本發(fā)明實(shí)施例四的二維數(shù)字巖心的連通區(qū)域識(shí)別裝置的結(jié)構(gòu)示意圖。

在附圖中,相同的部件使用相同的附圖標(biāo)記。附圖并未按照實(shí)際的比例繪制。

具體實(shí)施方式

下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步說(shuō)明。

實(shí)施例一

圖1為根據(jù)本發(fā)明實(shí)施例一的二維數(shù)字巖心的連通區(qū)域識(shí)別方法的流程示意圖;如圖1所示,本實(shí)施例提供一種二維數(shù)字巖心的連通區(qū)域識(shí)別方法,包括:

數(shù)據(jù)讀取步驟101,讀取二維數(shù)字巖心文件,所述二維數(shù)字巖心文件包括能夠表征二維數(shù)字巖心的數(shù)據(jù),其中,二維數(shù)字巖心的數(shù)據(jù)用于表示多個(gè)像素點(diǎn),每個(gè)像素點(diǎn)包括像素值和用于確定像素點(diǎn)位置的二維坐標(biāo),二維坐標(biāo)分別用x和y表示。

具體的,二維數(shù)字巖心文件包括二維數(shù)字巖心數(shù)據(jù),二維數(shù)字巖心數(shù)據(jù)可表征多個(gè)像素點(diǎn),每個(gè)像素點(diǎn)包括像素值和可確定像素點(diǎn)位置的二維坐標(biāo)組成,二維坐標(biāo)可表示空間任何一個(gè)位置,本發(fā)明中的二維坐標(biāo)分別用x和y表示,本實(shí)施例中采用直角坐標(biāo)系來(lái)對(duì)像素點(diǎn)的位置進(jìn)行說(shuō)明。

數(shù)據(jù)分塊步驟102,對(duì)二維數(shù)字巖心數(shù)據(jù)進(jìn)行分塊處理,以獲得多個(gè)子塊。

具體的,將二維數(shù)字巖心數(shù)據(jù)分塊,每一塊為一個(gè)子塊,如若導(dǎo)入的二維數(shù)字巖心數(shù)據(jù)在x和y方向上的像素點(diǎn)個(gè)數(shù)分別為110342和104900,可將二維數(shù)字巖心數(shù)據(jù)劃分為在x、y方向上的像素點(diǎn)個(gè)數(shù)分別為1024、1024的子塊。

掃描線獲取步驟103,對(duì)各子塊的二維數(shù)字巖心數(shù)據(jù)進(jìn)行掃描,以獲取掃描線。

具體的,掃描線由像素點(diǎn)和像素點(diǎn)之間的連線組成,用于后續(xù)判斷像素點(diǎn)之 間的連通關(guān)系。對(duì)各子塊的二維數(shù)字巖心數(shù)據(jù)進(jìn)行掃描,即對(duì)各子塊中的各像素點(diǎn)進(jìn)行掃描,通過(guò)判斷各像素點(diǎn)之間的關(guān)系以獲取掃描線。

子連通區(qū)域獲取步驟104,在各子塊內(nèi)根據(jù)掃描線生成子連通區(qū)域。

具體的,在各個(gè)子塊內(nèi),根據(jù)各個(gè)掃描線之間的相互關(guān)系,使具有相鄰關(guān)系的掃描線合并,使其處于一個(gè)子連通區(qū)域內(nèi)。掃描線之間是否相鄰的判斷方法為:x方向沒(méi)有重疊則不相鄰,y方向距離大于1則不相鄰,除以上情況外的其它情況認(rèn)為兩個(gè)掃描線相鄰。

父連通區(qū)域獲取步驟105,對(duì)子連通區(qū)域進(jìn)行合并處理,以生成父連通區(qū)域。

具體的,在相鄰的各個(gè)子塊內(nèi),對(duì)處于不同子塊的子連通區(qū)域進(jìn)行分析,將具有連通關(guān)系的子連通區(qū)域合并,以生成父連通區(qū)域。合并兩個(gè)子塊中的子連通區(qū)域的方法為:將子塊中一個(gè)子連通區(qū)域,和另一個(gè)子塊中每個(gè)子連通區(qū)域逐一進(jìn)行比對(duì),將具有相鄰關(guān)系的子連通區(qū)域的掃描線合并到一起形成父連通區(qū)域。

標(biāo)記步驟106,對(duì)各父連通區(qū)域采用不同的顏色進(jìn)行標(biāo)記。

具體的,對(duì)各個(gè)父連通區(qū)域采用不同的顏色進(jìn)行標(biāo)記,以示區(qū)別。

進(jìn)一步的,在獲取父連通區(qū)域之后,由于將相鄰子塊的子連通區(qū)域合并后,可能一些跨多個(gè)子塊的子連通區(qū)域并沒(méi)有被合成一個(gè)父連通區(qū)域,所以還要對(duì)這些父連通區(qū)域進(jìn)行相鄰性的識(shí)別并合并。合并過(guò)程就是對(duì)這些父連通區(qū)域互相比對(duì),將相鄰的父連通區(qū)域合并,直到找不到相鄰的父連通區(qū)域。

本實(shí)施例中的二維數(shù)字巖心的連通區(qū)域識(shí)別方法,首先讀取二維數(shù)字巖心文件,然后對(duì)二維數(shù)字巖心數(shù)據(jù)進(jìn)行分塊處理,以獲得多個(gè)子塊;再對(duì)各子塊的二維數(shù)字巖心數(shù)據(jù)進(jìn)行掃描,以獲取掃描線,并在各子塊內(nèi)根據(jù)掃描線生成子連通區(qū)域,然后對(duì)子連通區(qū)域進(jìn)行合并處理,以生成父連通區(qū)域,最后對(duì)各父連通區(qū)域采用不同的顏色進(jìn)行標(biāo)記。利用本發(fā)明提供的這種方法不僅可以精確獲得二維數(shù)字巖心的連通區(qū)域,而且可以對(duì)二維數(shù)字巖心相鄰連通區(qū)域之間進(jìn)行區(qū)分,為研究人員進(jìn)行分析研究奠定基礎(chǔ)。

實(shí)施例二

本實(shí)施例是在上述實(shí)施例的基礎(chǔ)上進(jìn)行的補(bǔ)充說(shuō)明。

圖2為根據(jù)本發(fā)明實(shí)施例二的二維數(shù)字巖心的連通區(qū)域識(shí)別方法的流程示意圖;如圖2所示,本實(shí)施例提供一種二維數(shù)字巖心的連通區(qū)域識(shí)別方法,包括:

步驟201,讀取二維數(shù)字巖心文件。

步驟202,對(duì)二維數(shù)字巖心數(shù)據(jù)進(jìn)行分塊處理,以獲得多個(gè)子塊。

步驟201-202具體可參見(jiàn)實(shí)施例一中的步驟101-步驟102,在此不再贅述。

步驟2031,對(duì)每個(gè)子塊分別進(jìn)行像素點(diǎn)篩選,以獲得優(yōu)選像素點(diǎn),其中,優(yōu)選像素點(diǎn)為像素值小于第一預(yù)設(shè)閾值的像素點(diǎn)。

具體的,第一預(yù)設(shè)閾值可根據(jù)實(shí)際情況進(jìn)行靈活設(shè)置,在此不做限制,在本實(shí)施例中,第一預(yù)設(shè)閾值取55,將每個(gè)子塊中的像素值小于55的像素點(diǎn)選定為優(yōu)選像素點(diǎn)。

步驟2032,獲取每個(gè)子塊內(nèi)掃描線的長(zhǎng)度大于第二預(yù)設(shè)閾值的掃描線,所述掃描線的長(zhǎng)度為x方向上相鄰的優(yōu)選像素點(diǎn)的連線長(zhǎng)度,所述掃描線包括組成掃描線長(zhǎng)度的各個(gè)優(yōu)選像素點(diǎn)。

具體的,相鄰兩個(gè)優(yōu)選像素點(diǎn)之間的掃描線長(zhǎng)度為1,第二預(yù)設(shè)閾值可根據(jù)實(shí)際情況進(jìn)行靈活設(shè)置,在此不做限制,在本實(shí)施例中,第二預(yù)設(shè)閾值取3,即連續(xù)4個(gè)或以上像素點(diǎn)組成的掃描線會(huì)被保留。掃描線包含這條線x方向的起止坐標(biāo)和y值。

步驟2041,初始化未分組掃描線,初始化子連通區(qū)域?yàn)榭?,其中,未分組掃描線包括所有的掃描線。

具體的,初始化子連通區(qū)域?yàn)榭?,即子連通區(qū)域不包括任何掃描線。

步驟2042,在未分組掃描線內(nèi)任意選定一條掃描線作為當(dāng)前掃描線,并將當(dāng)前掃描線添加到子連通區(qū)域中,且將當(dāng)前掃描線從未分組掃描線中刪除。

步驟2043,在當(dāng)前掃描線的y方向上查找是否有相鄰的掃描線,若有,轉(zhuǎn)步驟2043a執(zhí)行,若無(wú),轉(zhuǎn)步驟2043b執(zhí)行。

具體的,在當(dāng)前掃描線的y方向上查找是否有相鄰的掃描線,若有,轉(zhuǎn)步驟2043a執(zhí)行,若無(wú),轉(zhuǎn)步驟2043b執(zhí)行。

掃描線是否相鄰的判斷方法為:x方向沒(méi)有重疊則不相鄰,y方向距離大于1則不相鄰,其它情況相鄰。

步驟2043a,將查找到的相鄰的掃描線添加到子連通區(qū)域中,并將其設(shè)置為當(dāng)前掃描線,且將當(dāng)前掃描線從未分組掃描線中刪除,轉(zhuǎn)步驟2043執(zhí)行。

具體的,將相鄰的掃描線全部添加到子連通區(qū)域中,并將查找到的相鄰的掃描線設(shè)置為當(dāng)前掃描線,轉(zhuǎn)步驟2043執(zhí)行。

步驟2043b,保存此時(shí)的子連通區(qū)域,然后設(shè)置子連通區(qū)域?yàn)榭?,轉(zhuǎn)步驟 2043b1執(zhí)行。

具體的,執(zhí)行到本步驟,說(shuō)明包括在子連通區(qū)域中的掃描線已經(jīng)全部添加完畢,因此需要對(duì)此時(shí)的子連通區(qū)域進(jìn)行保存,用于后續(xù)步驟使用,然后將子連通區(qū)域設(shè)置為空,用于下一輪新的循環(huán),即轉(zhuǎn)步驟2043b1執(zhí)行。

步驟2043b1,判斷未分組掃描線是否為空,若不為空,轉(zhuǎn)步驟2042執(zhí)行,以獲得多個(gè)子連通區(qū)域。若為空,則轉(zhuǎn)步驟2051執(zhí)行。

具體的,判斷未分組掃描線中是否還有掃描線沒(méi)有參與子連通區(qū)域的合并,若還有,即未分組掃描線不為空,則需要根據(jù)掃描線生成子連通區(qū)域,轉(zhuǎn)步驟2042執(zhí)行,以此來(lái)獲得多個(gè)子連通區(qū)域,若未分組掃描線為空,則說(shuō)明所有的掃描線全部參與生成了子連通區(qū)域,轉(zhuǎn)步驟2051執(zhí)行即可。

進(jìn)一步的,為了減少計(jì)算量,并在合理的精度范圍內(nèi)獲得子連通區(qū)域,對(duì)子連通區(qū)域進(jìn)行優(yōu)選,將子連通區(qū)域面積小于第三預(yù)設(shè)閾值的剔除掉,第三預(yù)設(shè)閾值在本實(shí)施例中設(shè)為22,也可根據(jù)實(shí)際情況設(shè)置為其他數(shù)值,在此不做限定。

步驟2051,判斷分屬于相鄰兩個(gè)子塊的兩個(gè)子連通區(qū)域的范圍是否有交集,若有交集,則將兩個(gè)子塊的掃描線按照y值排序,對(duì)于每個(gè)y值,在兩個(gè)子塊中各取y-1,y,y+1這三行y值對(duì)應(yīng)的掃描線,形成兩組y值掃描線。

具體的,合并兩個(gè)子塊中的子連通區(qū)域的方法為:將子塊中一個(gè)子連通區(qū)域,和另一個(gè)子塊中每個(gè)子連通區(qū)域逐一進(jìn)行比對(duì),將具有相鄰關(guān)系的子連通區(qū)域的掃描線合并到一起形成父連通區(qū)域。

步驟2051-步驟2052為子連通區(qū)域是否相鄰的判斷方法。

具體的,按照y值排序后,從小到大依次比較不同y值所對(duì)應(yīng)的兩個(gè)子塊中的掃描線是否相鄰,對(duì)于每個(gè)y值,在兩個(gè)子塊中各取y-1,y,y+1這三行y值對(duì)應(yīng)的掃描線,形成兩組y值掃描線。

步驟2052,若兩組y值掃描線中有相鄰的掃描線,則將兩個(gè)子連通區(qū)域合并,以形成父連通區(qū)域。

具體的,按照步驟2043中的掃描線是否相鄰的判斷方法,對(duì)兩組y值掃描線中的掃描線進(jìn)行分析,判斷是否存在相鄰的掃描線,若存在,則將兩個(gè)子連通區(qū)域合并,以形成父連通區(qū)域。

步驟2061,獲取父連通區(qū)域的中心點(diǎn),并將中心點(diǎn)利用三角剖分連接,初始化未標(biāo)記中心點(diǎn),其中,未標(biāo)記中心點(diǎn)包括所有中心點(diǎn)。

具體的,中心點(diǎn)為父連通區(qū)域所外包的最小長(zhǎng)方形的中心。三角剖分的方法具體可參見(jiàn)現(xiàn)有技術(shù),在此不再贅述。經(jīng)過(guò)三角剖分后,會(huì)形成一個(gè)平面網(wǎng)絡(luò),平面網(wǎng)絡(luò)是由若干三角形組成的,其中三角形的每個(gè)端點(diǎn)即為各個(gè)連通區(qū)域的中心點(diǎn)。

步驟2062,判斷未標(biāo)記中心點(diǎn)是否為空,若不為空,則轉(zhuǎn)步驟2063執(zhí)行;若為空,結(jié)束。

具體的,對(duì)父連通區(qū)域進(jìn)行不同顏色標(biāo)記,若未標(biāo)記中心點(diǎn)為空,即不存在未標(biāo)記中心點(diǎn),則說(shuō)明此時(shí)的中心點(diǎn)全部標(biāo)記過(guò)了,應(yīng)結(jié)束流程。若未標(biāo)記中心點(diǎn)不為空,轉(zhuǎn)步驟2063繼續(xù)執(zhí)行。

步驟2063,將未標(biāo)記中心點(diǎn)中所連的邊的數(shù)量最多的中心點(diǎn)設(shè)置為當(dāng)前中心點(diǎn),對(duì)當(dāng)前中心點(diǎn)所在的父連通區(qū)域進(jìn)行顏色標(biāo)記,其顏色要與當(dāng)前中心點(diǎn)有邊連接且標(biāo)記過(guò)的父連通區(qū)域的顏色不同。

步驟2064,將所有與當(dāng)前中心點(diǎn)有邊相連的中心點(diǎn)所連接的邊的數(shù)量減1,將當(dāng)前中心點(diǎn)從未標(biāo)記中心點(diǎn)中刪除,轉(zhuǎn)步驟2062執(zhí)行。

進(jìn)一步的,在對(duì)所有父連通區(qū)域進(jìn)行顏色標(biāo)記完成之后,創(chuàng)建一個(gè)新的地理信息圖層,將進(jìn)行顏色標(biāo)記后的每個(gè)父連通區(qū)域作為圖層中的圖元,圖元顏色即父連通區(qū)域的染色,并且將每個(gè)父連通區(qū)域的掃描線集合,中心點(diǎn)坐標(biāo),父連通區(qū)域的面積,范圍作為對(duì)應(yīng)圖元的屬性信息加以存儲(chǔ)。對(duì)于生成的地理信息圖層,用戶可以給出一個(gè)查詢范圍,然后得到查詢范圍內(nèi)對(duì)應(yīng)的各個(gè)圖元即父連通區(qū)域,并且可以查看查詢結(jié)果中每個(gè)父連通區(qū)域的屬性信息,為研究人員的研究工作提供便利。

本實(shí)施例中的二維數(shù)字巖心的連通區(qū)域識(shí)別方法,不僅可以精確獲得二維數(shù)字巖心的連通區(qū)域,而且可以對(duì)二維數(shù)字巖心相鄰連通區(qū)域之間進(jìn)行不同標(biāo)記區(qū)分,為研究人員進(jìn)行分析研究奠定基礎(chǔ)。

實(shí)施例三

本實(shí)施例為裝置實(shí)施例,用于執(zhí)行上述實(shí)施例一中的方法。

圖3為根據(jù)本發(fā)明實(shí)施例三的二維數(shù)字巖心的連通區(qū)域識(shí)別裝置的結(jié)構(gòu)示意圖;如圖3所示,本實(shí)施例提供一種二維數(shù)字巖心的連通區(qū)域識(shí)別裝置,包括:數(shù)據(jù)讀取模塊301、數(shù)據(jù)分塊模塊302、掃描線獲取模塊303、子連通區(qū)域獲取模塊304、父連通區(qū)域獲取模塊305和標(biāo)記模塊306。

其中,數(shù)據(jù)讀取模塊301,用于讀取二維數(shù)字巖心文件,所述二維數(shù)字巖心文件包括能夠表征二維數(shù)字巖心的數(shù)據(jù),其中,二維數(shù)字巖心的數(shù)據(jù)用于表示多個(gè)像素點(diǎn),每個(gè)像素點(diǎn)包括像素值和用于確定像素點(diǎn)位置的二維坐標(biāo),二維坐標(biāo)分別用x和y表示;

數(shù)據(jù)分塊模塊302,用于對(duì)二維數(shù)字巖心數(shù)據(jù)進(jìn)行分塊處理,以獲得多個(gè)子塊;

掃描線獲取模塊303,用于對(duì)各子塊的二維數(shù)字巖心數(shù)據(jù)進(jìn)行掃描,以獲取掃描線;

子連通區(qū)域獲取模塊304,用于在各子塊內(nèi)根據(jù)掃描線生成子連通區(qū)域;

父連通區(qū)域獲取模塊305,用于對(duì)子連通區(qū)域進(jìn)行合并處理,以生成父連通區(qū)域;

標(biāo)記模塊306,用于對(duì)各父連通區(qū)域采用不同的顏色進(jìn)行標(biāo)記。

本實(shí)施例是與方法實(shí)施例一對(duì)應(yīng)的裝置實(shí)施例,具體可參見(jiàn)實(shí)施例一中的描述,在此不再贅述。

實(shí)施例四

本實(shí)施例是在實(shí)施例三的基礎(chǔ)上進(jìn)行的補(bǔ)充說(shuō)明,用于執(zhí)行上述實(shí)施例二中的方法。

圖4為根據(jù)本發(fā)明實(shí)施例四的二維數(shù)字巖心的連通區(qū)域識(shí)別裝置的結(jié)構(gòu)示意圖;如圖4所示,本實(shí)施例提供一種二維數(shù)字巖心的連通區(qū)域識(shí)別裝置,包括:數(shù)據(jù)讀取模塊301、數(shù)據(jù)分塊模塊302、掃描線獲取模塊303、子連通區(qū)域獲取模塊304、父連通區(qū)域獲取模塊305和標(biāo)記模塊306。

其中,掃描線獲取模塊303具體用于:

對(duì)每個(gè)子塊分別進(jìn)行像素點(diǎn)篩選,以獲得優(yōu)選像素點(diǎn),其中,優(yōu)選像素點(diǎn)為像素值小于第一預(yù)設(shè)閾值的像素點(diǎn);

在每個(gè)子塊內(nèi)獲取掃描線的長(zhǎng)度大于第二預(yù)設(shè)閾值的掃描線,所述掃描線的長(zhǎng)度為x方向上相鄰的優(yōu)選像素點(diǎn)的連線長(zhǎng)度,所述掃描線包括組成掃描線長(zhǎng)度的各個(gè)優(yōu)選像素點(diǎn)。

子連通區(qū)域獲取模塊304具體包括初始化子模塊3041、當(dāng)前掃描線選定子模塊3042和子連通區(qū)域生成子模塊3043。

其中,初始化子模塊3041,用于初始化未分組掃描線,初始化子連通區(qū)域?yàn)? 空,其中,未分組掃描線包括所有的掃描線;

當(dāng)前掃描線選定子模塊3042,用于在未分組掃描線內(nèi)任意選定一條掃描線作為當(dāng)前掃描線,并將當(dāng)前掃描線添加到子連通區(qū)域中,且將當(dāng)前掃描線從未分組掃描線中刪除;

子連通區(qū)域生成子模塊3043,用于在當(dāng)前掃描線的y方向上查找是否有相鄰的掃描線,若有,將其添加到子連通區(qū)域中,并將其設(shè)置為當(dāng)前掃描線,且將當(dāng)前掃描線從未分組掃描線中刪除,觸發(fā)子連通區(qū)域生成模塊,若無(wú),保存此時(shí)的子連通區(qū)域,然后設(shè)置子連通區(qū)域?yàn)榭?,判斷未分組掃描線是否為空,若不為空,觸發(fā)當(dāng)前掃描線選定模塊,以獲得多個(gè)子連通區(qū)域。

父連通區(qū)域獲取模塊305,具體用于:

判斷分屬于相鄰兩個(gè)子塊的兩個(gè)子連通區(qū)域的范圍是否有交集,若有交集,則將兩個(gè)子塊的掃描線按照y值排序,對(duì)于每個(gè)y值,在兩個(gè)子塊中各取y-1,y,y+1這三行y值對(duì)應(yīng)的掃描線,形成兩組y值掃描線;

若兩組y值掃描線中有相鄰的掃描線,則將兩個(gè)子連通區(qū)域合并,以形成父連通區(qū)域。

標(biāo)記模塊306具體包括中心點(diǎn)獲取子模塊3061、判斷子模塊3062、標(biāo)記子模塊3063和設(shè)置子模塊3064。

其中,中心點(diǎn)獲取子模塊3061,用于獲取父連通區(qū)域的中心點(diǎn),并將中心點(diǎn)利用三角剖分連接,初始化未標(biāo)記中心點(diǎn),其中,未標(biāo)記中心點(diǎn)包括所有中心點(diǎn);

判斷子模塊3062,用于判斷未標(biāo)記中心點(diǎn)是否為空,若不為空,則觸發(fā)標(biāo)記子模塊3063;

標(biāo)記子模塊3063,用于將未標(biāo)記中心點(diǎn)中所連的邊的數(shù)量最多的中心點(diǎn)設(shè)置為當(dāng)前中心點(diǎn),對(duì)當(dāng)前中心點(diǎn)所在的父連通區(qū)域進(jìn)行顏色標(biāo)記,其顏色要與當(dāng)前中心點(diǎn)有邊連接且標(biāo)記過(guò)的父連通區(qū)域的顏色不同;

設(shè)置子模塊3064,用于將所有與當(dāng)前中心點(diǎn)有邊相連的中心點(diǎn)所連接的邊的數(shù)量減1,將當(dāng)前中心點(diǎn)從未標(biāo)記中心點(diǎn)中刪除,觸發(fā)判斷子模塊3062。

本實(shí)施例是與方法實(shí)施例二對(duì)應(yīng)的裝置實(shí)施例,具體可參見(jiàn)實(shí)施例二中的描述,在此不再贅述。

雖然已經(jīng)參考優(yōu)選實(shí)施例對(duì)本發(fā)明進(jìn)行了描述,但在不脫離本發(fā)明的范圍的情況下,可以對(duì)其進(jìn)行各種改進(jìn)并且可以用等效物替換其中的部件。尤其是,只 要不存在結(jié)構(gòu)沖突,各個(gè)實(shí)施例中所提到的各項(xiàng)技術(shù)特征均可以任意方式組合起來(lái)。本發(fā)明并不局限于文中公開(kāi)的特定實(shí)施例,而是包括落入權(quán)利要求的范圍內(nèi)的所有技術(shù)方案。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1