本發(fā)明屬于攝影測(cè)量與遙感影像處理領(lǐng)域,特別涉及一種基于柵格的接縫線網(wǎng)絡(luò)生成方法。
背景技術(shù):
影像鑲嵌是生成數(shù)字正射影像產(chǎn)品的關(guān)鍵步驟,它是將多幅數(shù)字正射影像拼接在一起形成一幅更大范圍影像的過(guò)程,可以解決單景影像覆蓋范圍較小、不能滿足進(jìn)行大范圍可視化、分析、處理等實(shí)際應(yīng)用的需求。
在進(jìn)行影像鑲嵌處理時(shí),基于接縫線的鑲嵌方法是普遍采用的方法,其中基于接縫線網(wǎng)絡(luò)的鑲嵌方法具有明顯優(yōu)勢(shì),其關(guān)鍵步驟是接縫線網(wǎng)絡(luò)的生成。目前具有代表性的接縫線網(wǎng)絡(luò)的生成方法是基于顧及重疊的面Voronio圖的方法,但該方法是基于矢量計(jì)算的方式進(jìn)行的,只能處理影像有效范圍為簡(jiǎn)單凸多邊形的情況。然而在實(shí)際應(yīng)用中,影像的有效范圍非常復(fù)雜,可能是凹多邊形或者復(fù)雜多邊形。因此本方法提出一種基于柵格的接縫線網(wǎng)絡(luò)生成方法,解決了影像有效范圍為任意形狀時(shí)的接縫線網(wǎng)絡(luò)生成問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提出了一種基于柵格的接縫線網(wǎng)絡(luò)生成方法。
本發(fā)明所采用的技術(shù)方案是:一種基于柵格的接縫線網(wǎng)絡(luò)生成方法,其特征在于,包括以下步驟:
步驟1:確定每幅待鑲嵌影像的有效范圍。為敘述方便,待鑲嵌的n幅影像分別用I1、I2、····In表示。
步驟2:根據(jù)Ii(i=1,2···n)的有效范圍多邊形Pi,得到最終鑲嵌結(jié)果的覆蓋范圍,并創(chuàng)建一個(gè)同樣大小的模板影像,同時(shí)將像元值初始化為0。具體包括以下子步驟:
步驟2.1:對(duì)Pi(i=1,2···n)的x坐標(biāo)排序,得到x方向的最大最小值Xmax、Xmin,對(duì)Pi(i=1,2···n)的y坐標(biāo)排序,得到y(tǒng)方向的最大最小值Ymax、Ymin,以此值組合為模板影像矩形角點(diǎn)坐標(biāo)((Xmin,Ymin),(Xmax,Ymin),(Xmax,Ymax),(Xmin,Xmax))。
步驟2.2:根據(jù)模板影像矩形角點(diǎn)坐標(biāo)值,得到模板影像行數(shù)列數(shù),并創(chuàng)建模板影像,賦0為初始值,寫入到文件。
步驟3:選出某一幅影像作為起始影像I1,根據(jù)影像I1的有效范圍,以數(shù)字編號(hào)1填充到模板影像對(duì)應(yīng)范圍內(nèi)的每個(gè)像元上。
步驟4:假設(shè)已有i(i=1,2,…,n-1)幅鑲嵌影像(I1,I2,…,Ii)被鑲嵌到模板影像上,從剩下的n-i幅待鑲嵌中選出影像Ij(此時(shí)j=i+1),根據(jù)影像Ij的有效范圍,以數(shù)字編號(hào)j填充到模板影像對(duì)應(yīng)范圍內(nèi)的每個(gè)像元上,并確定出Ij與i幅鑲嵌影像(I1,I2,…,Ii)之間的k(0≤k≤i)個(gè)重疊區(qū)域,以數(shù)字編號(hào)Cm(m=1,2,…,k)表示,其中Cm為大于n的整數(shù)。具體包括以下子步驟:
步驟4.1:將Ij的多邊形坐標(biāo)點(diǎn)序列Pj,變換成模板影像上對(duì)應(yīng)的行列號(hào)坐標(biāo),以pj'表示。
步驟4.2:對(duì)pj'確定的范圍,使用掃描線填充法對(duì)該范圍進(jìn)行填充。如果該模板影像像元值為0,則以數(shù)字編號(hào)j填充。如果像元值為m(0<m≤i),則以數(shù)字編號(hào)Cm填充。
步驟5:逐個(gè)重疊區(qū)進(jìn)行區(qū)域生長(zhǎng)得到每個(gè)重疊區(qū)內(nèi)的接縫線,將k個(gè)重疊區(qū)域獲得的接縫線與已有的i幅影像的接縫線網(wǎng)絡(luò)相連接,就形成了i+1幅影像的接縫線網(wǎng)絡(luò),這樣i+1幅影像就被鑲嵌到模板影像上了。具體包括以下子步驟:
步驟5.1:對(duì)pj'確定的范圍,從上往下,從左往右逐像元值判斷,找到重疊區(qū)Cm(m=1,2··k)的其中一個(gè)邊界像元。
步驟5.2:建立兩個(gè)空隊(duì)列,以步驟4.1中找到的邊界像元為起始像元,進(jìn)行邊界跟蹤。以邊界像元所臨近區(qū)域,將閉合的邊界劃分為兩條邊界。將這兩條邊界,分別放入兩個(gè)隊(duì)列中。
步驟5.3:以兩個(gè)隊(duì)列中的像元為種子點(diǎn),對(duì)重疊區(qū)域Cm進(jìn)行區(qū)域生長(zhǎng)得到該重疊區(qū)接縫線。
步驟5.4:重復(fù)步驟5.1、5.2、5.3直至pj'范圍內(nèi)不存在重疊區(qū),即形成i+1幅影像的接縫像網(wǎng)絡(luò),這樣i+1幅影像就被鑲嵌到模板影像上了。
步驟6:重復(fù)步驟4、5,直至i=n,獲得最終的接縫線網(wǎng)絡(luò)。
本發(fā)明實(shí)質(zhì)上是基于顧及重疊的面Voronio圖方法柵格形式的實(shí)現(xiàn),通過(guò)對(duì)待鑲嵌影像之間的重疊區(qū)進(jìn)行標(biāo)記,以重疊區(qū)域外面邊界像素為種子點(diǎn)區(qū)域生長(zhǎng),實(shí)現(xiàn)對(duì)重疊區(qū)域的重新劃分,解決了影像有效范圍為任意形狀時(shí)的接縫線網(wǎng)絡(luò)生成問(wèn)題。
附圖說(shuō)明
圖1:是本發(fā)明實(shí)施例生成影像I3所涉及的接縫線的初始示意圖,I1、I2為已經(jīng)鑲嵌在模板影像上的示意圖,I3為當(dāng)前準(zhǔn)備待鑲嵌的影像。
圖2:是本發(fā)明實(shí)施例根據(jù)I3的有效范圍對(duì)模板影像進(jìn)行填充的示意圖。其中C1、C2為影像I3分別與影像I1、I2的重疊區(qū)域。
圖3:是本發(fā)明實(shí)施例對(duì)重疊區(qū)C1邊界跟蹤的示意圖。其中,兩條不同虛線表示跟蹤出來(lái)的兩條不同邊界。
圖4:是本發(fā)明實(shí)施例對(duì)重疊區(qū)C1以邊界為種子點(diǎn)區(qū)域生長(zhǎng)的結(jié)果示意圖。生長(zhǎng)后得到重疊區(qū)C1的接縫線。
圖5:是本發(fā)明實(shí)施例影像I3范圍所涉及到的所有重疊區(qū)均被區(qū)域生長(zhǎng)后得到的最終接縫線網(wǎng)絡(luò)示意圖。
具體實(shí)施方式
為了便于本領(lǐng)域普通技術(shù)人員理解和實(shí)施本發(fā)明,下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述,應(yīng)當(dāng)理解,此處所描述的實(shí)施示例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。
本實(shí)例針對(duì)數(shù)字正射影像,提供了一種基于柵格的接縫線網(wǎng)絡(luò)生成,包括以下步驟:
步驟1:確定每幅待鑲嵌影像的有效范圍。為敘述方便,待鑲嵌的n幅影像分別用I1、I2、····In表示。具體實(shí)現(xiàn)過(guò)程是基于邊界跟蹤得到影像Ii(i=1,2···n)的有效范圍多邊形,多邊形以坐標(biāo)點(diǎn)序列Pi=((xi1,yi1),(xi2,yi2)···(xik,yik),(xi1,yi1))表示。其中邊界跟蹤算法參考文獻(xiàn)(何斌,馬天予,王運(yùn)堅(jiān),朱紅蓮.VisaulC++數(shù)字圖像處理[M].北京:人民郵電出版社,2001)。
步驟2:根據(jù)Ii(i=1,2···n)的有效范圍多邊形Pi,得到最終鑲嵌結(jié)果的覆蓋范圍,并創(chuàng)建一個(gè)同樣大小的模板影像,同時(shí)將像元值初始化為0。具體包括以下子步驟:
步驟2.1:對(duì)Pi(i=1,2···n)的x坐標(biāo)排序,得到x方向的最大最小值Xmax、Xmin,對(duì)Pi(i=1,2···n)的y坐標(biāo)排序,得到y(tǒng)方向的最大最小值Ymax、Ymin,以此值組合為模板影像矩形角點(diǎn)坐標(biāo)((Xmin,Ymin),(Xmax,Ymin),(Xmax,Ymax),(Xmin,Xmax))。
步驟2.2:根據(jù)模板影像矩形角點(diǎn)坐標(biāo)值,得到模板影像行數(shù)列數(shù),其計(jì)算公式為:
其中Cols表示模板影像列數(shù),Xmax、Xmin、Resx分別表示待鑲嵌影像中X方向坐標(biāo)最大值、坐標(biāo)最小值、分辨率。Rows表示模板影像行數(shù),Ymax、Ymin、Resy分別表示Y方向坐標(biāo)最大值、坐標(biāo)最小值、分辨率。然后創(chuàng)建模板影像,單波段即可,每個(gè)像素2個(gè)字節(jié)存儲(chǔ),以0為初始值,寫入數(shù)據(jù)到文件
步驟3:選出某一影像作為起始影像I1,根據(jù)影像I1的有效范圍,以數(shù)字編號(hào)1填充到模板影像對(duì)應(yīng)范圍內(nèi)的每個(gè)像元上。具體填充過(guò)程參考步驟4中影像Ij的填充過(guò)程。
步驟4:假設(shè)已有i(i=1,2,…,n-1)幅鑲嵌影像(I1,I2,…,Ii)被鑲嵌到模板影像上。從剩下的n-i幅待鑲嵌中隨意選出影像Ij,根據(jù)影像Ij的有效范圍,以數(shù)字編號(hào)j填充到模板影像對(duì)應(yīng)范圍內(nèi)的每個(gè)像元上,并確定出Ij與i幅鑲嵌影像(I1,I2,…,Ii)之間的k(0≤k≤i)個(gè)重疊區(qū)域,以數(shù)字編號(hào)Cm(m=1,2,…,k)表示,其中Cm為大于n的整數(shù)。具體包括以下子步驟:
步驟4.1:利用公式(3)、(4)將Ij的多邊形坐標(biāo)點(diǎn)序列Pj,變換成模板影像上對(duì)應(yīng)的行列號(hào)坐標(biāo),以pj'表示。得到在模板影像上的對(duì)應(yīng)范圍如圖1所示,此時(shí),Ij代表的影像為I3。
步驟4.2:對(duì)pj'確定的范圍,使用掃描線填充法對(duì)該范圍進(jìn)行填充。如果該模板影像像元值為0,則以數(shù)字編號(hào)j填充。如果像元值為m(0<m≤i),則以數(shù)字編號(hào)Cm填充。填充的結(jié)果如圖2所示,在圖2中,總共有三幅待鑲嵌影像,即n=3,此時(shí)C1、C2可以分別設(shè)定值為4、5。
步驟5:逐個(gè)重疊區(qū)進(jìn)行區(qū)域生長(zhǎng)得到每個(gè)重疊區(qū)內(nèi)的接縫線,將k個(gè)重疊區(qū)域獲得的接縫線與已有的i幅影像的接縫線網(wǎng)絡(luò)相連接,就形成了i+1幅影像的接縫線網(wǎng)絡(luò),這樣i+1幅影像就被鑲嵌到模板影像上了。具體包括以下子步驟:
步驟5.1:對(duì)pj'確定的范圍,從上往下,從左往右逐像元值判斷,找到重疊區(qū)Cm(m=1,2··k)的其中一個(gè)邊界像元。
步驟5.2:建立兩個(gè)空隊(duì)列,以步驟5.1中找到的邊界像元為起始像元,進(jìn)行邊界跟蹤,算法主要實(shí)現(xiàn)參考文獻(xiàn)(柳稼航,楊建峰,單新建,尹京苑.一種基于優(yōu)先搜索方向的邊界跟蹤算法[J].遙感技術(shù)與應(yīng)用,2004,03:209-213.)。以邊界像元所臨近區(qū)域,將閉合的邊界劃分為兩條邊界,如圖3所示。將這兩條邊界,分別放入兩個(gè)隊(duì)列中。
步驟5.3:以兩個(gè)隊(duì)列中的像元為種子點(diǎn),對(duì)重疊區(qū)域Cm進(jìn)行區(qū)域生長(zhǎng)得到該重疊區(qū)接縫線。如圖4所示,對(duì)重疊區(qū)域C1重新劃分得到C1區(qū)域的接縫線,該接縫線兩端與已有的接縫線網(wǎng)絡(luò)相連,同時(shí)I1、I2與C1區(qū)域相連的部分邊界發(fā)生改變,I1、I2的范圍相應(yīng)更新。
步驟5.4:重復(fù)步驟5.1、5.2、5.3直至pj'范圍內(nèi)不存在重疊區(qū),即形成i+1幅影像的接縫像網(wǎng)絡(luò),這樣i+1幅影像就被鑲嵌到模板影像上了。如圖4所示,繼續(xù)對(duì)圖4中的C2區(qū)域繼續(xù)重復(fù)步驟5.1、5.2、5.3,從而形成3幅影像的接縫像網(wǎng)絡(luò),即圖5所示。
步驟6:重復(fù)步驟4、5,直至i=n,獲得最終的接縫線網(wǎng)絡(luò)。圖5所示的就是3幅影像最終的接縫線網(wǎng)絡(luò)。
應(yīng)當(dāng)理解的是,本說(shuō)明書未詳細(xì)闡述的部分均屬于現(xiàn)有技術(shù)。
應(yīng)當(dāng)理解的是,上述針對(duì)較佳實(shí)施例的描述較為詳細(xì),并不能因此而認(rèn)為是對(duì)本發(fā)明專利保護(hù)范圍的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明權(quán)利要求所保護(hù)的范圍情況下,還可以做出替換或變形,均落入本發(fā)明的保護(hù)范圍之內(nèi),本發(fā)明的請(qǐng)求保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。