本發(fā)明屬于雷達(dá)技術(shù)領(lǐng)域,特別涉及一種sar圖像的配準(zhǔn)方法,可用于實(shí)時(shí)遙感數(shù)據(jù)分析。
背景技術(shù):
金字塔互信息圖像配準(zhǔn)是當(dāng)今最常用的配準(zhǔn)算法之一,其將互信息計(jì)算與圖像采樣結(jié)合起來,具有運(yùn)算量小,配準(zhǔn)效果好的優(yōu)勢(shì)?,F(xiàn)今的金字塔互信息圖像配準(zhǔn)算法多在cpu上實(shí)現(xiàn),華中科技大學(xué)的李喬亮、汪國有、劉建國等提出的基于樣條金字塔和互信息的快速圖像配準(zhǔn)算法,采用構(gòu)建樣條金字塔降低計(jì)算量,該算法在cpu上單線程運(yùn)行。張贊霞、彭嘉雄、王洪群提出的基于互信息的分層遙感圖像處理方法,采用小波變換構(gòu)造圖像金字塔進(jìn)行互信息配準(zhǔn),同樣是在cpu上運(yùn)行。
隨著sar圖像分辨率的提高,cpu上運(yùn)行的圖像配準(zhǔn)算法運(yùn)行時(shí)間變長,以至于無法滿足實(shí)時(shí)性要求,使用gpu并行加速的配準(zhǔn)算法出現(xiàn);國防科技大學(xué)趙進(jìn)在基于gpu的遙感圖像并行處理算法及其優(yōu)化技術(shù)研究的論文中給出了gpu實(shí)現(xiàn)的互信息圖像配準(zhǔn)算法,但該方法對(duì)于使用單精度浮點(diǎn)運(yùn)算的gpu來說,配準(zhǔn)精度不易控制。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于針對(duì)上述現(xiàn)有技術(shù)的不足,提出一種基于gpu和金字塔互信息的sar圖像配準(zhǔn)方法,以減小圖像配準(zhǔn)時(shí)間,并提高配準(zhǔn)的精度。
本發(fā)明的技術(shù)方案是:
采用cpu+gpu結(jié)合的方式,利用gpu進(jìn)行圖像采樣和互信息計(jì)算,利用cpu進(jìn)行金字塔每層圖像共有區(qū)域范圍和移動(dòng)范圍的計(jì)算。對(duì)圖片進(jìn)行1/4和1/2下采樣構(gòu)建3層金字塔,通過逐層計(jì)算配準(zhǔn)位置,生成最終的配準(zhǔn)圖像,其實(shí)現(xiàn)步驟包括如下:
(1)獲取兩幅sar灰度圖像,并將其傳送到gpu顯存中作為兩幅原始sar圖像,gpu對(duì)這兩幅sar圖像分別進(jìn)行1/4下采樣,得到第一幅金字塔頂層圖像d11和第二幅金字塔頂層圖像d12;同時(shí)通過cpu初始化第二幅金字塔頂層圖像d12的移動(dòng)范圍;
(2)計(jì)算金字塔頂層最大互信息對(duì)應(yīng)第二幅金字塔頂層圖像d12的移動(dòng)位置:
(2a)gpu在移動(dòng)范圍內(nèi)選取一個(gè)移動(dòng)矢量并移動(dòng)第二幅金字塔頂層圖像d12,生成第一幅金字塔頂層共有區(qū)域圖像d11'和第二幅金字塔頂層共有區(qū)域圖像d12',再計(jì)算這兩幅圖像的互信息mi1;
(2b)在移動(dòng)范圍內(nèi)遍歷選取新的移動(dòng)矢量,重復(fù)(2a),得到互信息值的集合;找出集合中最大互信息值,并保存該最大互信息值對(duì)應(yīng)的第二幅金字塔頂層圖像d12的移動(dòng)位置;
(3)gpu對(duì)兩幅原始sar圖像進(jìn)行1/2下采樣,得到金字塔中間層的兩幅圖像d21和d22;cpu根據(jù)步驟(2b)保存的第二幅金字塔頂層圖像d12移動(dòng)位置,確定第二幅金字塔中間層圖像d22的移動(dòng)范圍;
(4)計(jì)算金字塔中間層最大互信息對(duì)應(yīng)第二幅金字塔中間層圖像d22的移動(dòng)位置:
(4a)gpu在步驟(3)確定的移動(dòng)范圍內(nèi)選取一個(gè)移動(dòng)矢量并移動(dòng)第二幅金字塔中間層圖像d22,生成第一幅金字塔中間層共有區(qū)域圖像d21'和第二幅金字塔中間層共有區(qū)域圖像d22',再計(jì)算這兩幅圖像的互信息mi2;
(4b)在步驟(3)確定的移動(dòng)范圍內(nèi)遍歷選取新的移動(dòng)矢量,重復(fù)(4a),得到互信息值的集合;找出集合中最大互信息值,并保存該最大互信息值對(duì)應(yīng)第二幅金字塔中間層圖像d22的移動(dòng)位置;
(5)cpu根據(jù)步驟(4b)保存的第二幅金字塔中間層圖像d22移動(dòng)位置,確定第二幅原始sar圖像的移動(dòng)范圍,并在內(nèi)存中開辟一塊空間f用于存儲(chǔ)金字塔底層互信息值和移動(dòng)矢量,初始化空間f的互信息值為單精度浮點(diǎn)負(fù)無窮;
(6)計(jì)算金字塔底層最大互信息對(duì)應(yīng)第二幅原始sar圖像的移動(dòng)位置:
(6a)gpu在步驟(5)確定的移動(dòng)范圍內(nèi)選取一個(gè)移動(dòng)矢量并移動(dòng)第二幅原始sar圖像,生成第一幅金字塔底層共有區(qū)域圖像d31'和第二幅金字塔底層共有區(qū)域圖像d32',再計(jì)算這兩幅圖像的互信息mi3;
(6b)cpu將互信息mi3與空間f中存儲(chǔ)的互信息值進(jìn)行比較:如果互信息mi3比空間f存儲(chǔ)的互信息值大,則更改空間f存儲(chǔ)的互信息值為mi3,同時(shí)更改空間f存儲(chǔ)的移動(dòng)矢量,否則,不進(jìn)行任何操作;
(6c)在步驟(5)確定的移動(dòng)范圍內(nèi)遍歷選取新的移動(dòng)矢量,重復(fù)(6a)和(6b);空間f存儲(chǔ)的互信息值即為金字塔底層最大互信息值mi,取出空間f保存的移動(dòng)矢量,gpu根據(jù)該移動(dòng)矢量再次移動(dòng)第二幅原始sar圖像,得到配準(zhǔn)后圖像d。
本發(fā)明具有如下優(yōu)點(diǎn):
本發(fā)明由于將gpu運(yùn)用到金字塔每層共有區(qū)域圖像的互信息計(jì)算中,與cpu實(shí)現(xiàn)的傳統(tǒng)金字塔互信息配準(zhǔn)算法相比,減少了運(yùn)行時(shí)間;同時(shí)由于通過生成金字塔每層共有區(qū)域圖像,提高了配準(zhǔn)精度。
測(cè)試結(jié)果表明,本發(fā)明與cpu實(shí)現(xiàn)的金字塔互信息配準(zhǔn)算法相比,配準(zhǔn)時(shí)間大幅減小;本發(fā)明與gpu實(shí)現(xiàn)的傳統(tǒng)金字塔互信息配準(zhǔn)算法相比,配準(zhǔn)精度有所提高。
附圖說明
圖1為本發(fā)明的實(shí)現(xiàn)流程框圖;
圖2為本發(fā)明仿真實(shí)驗(yàn)使用的原始sar圖像;
圖3為本發(fā)明仿真實(shí)驗(yàn)得出的配準(zhǔn)后圖像;
圖4為用本發(fā)明得出的配準(zhǔn)后圖像與第一幅原始sar圖像的重疊圖像。
具體實(shí)施方式
參照?qǐng)D1,本發(fā)明的具體步驟如下:
步驟1,gpu生成兩幅頂層圖像d11和d12,cpu計(jì)算第二幅金字塔頂層圖像d12的移動(dòng)范圍。
(1a)gpu生成第一幅金字塔頂層圖像d11和第二幅金字塔頂層圖像d12:
(1a1)根據(jù)第一幅原始sar圖像的寬w1和高h(yuǎn)1,gpu在顯存中開辟寬為
(1a2)gpu先為第一幅金字塔頂層圖像d11分配32×32個(gè)線程塊,每個(gè)線程塊再分配
(1a3)利用第一金字塔頂層二維數(shù)組α1中元素(x1,y1)對(duì)應(yīng)的線程,將該元素賦值為第一幅原始sar圖像中(4x1,4y1)坐標(biāo)處的像素值,此時(shí)第一金字塔頂層二維數(shù)組α1即存儲(chǔ)著第一幅金字塔頂層圖像d11;
(1a4)根據(jù)第二幅原始sar圖像的寬w2和高h(yuǎn)2,在gpu顯存中開辟寬為
(1a5)gpu先為第二幅金字塔頂層圖像d12分配32×32個(gè)線程塊,每個(gè)線程塊再分配
(1a6)利用第二金字塔頂層二維數(shù)組β1中元素(x1',y1')對(duì)應(yīng)的線程,將該元素賦值為第二幅原始sar圖像(4x1',4y1')坐標(biāo)的像素值,此時(shí)第二金字塔頂層二維數(shù)組β1即存儲(chǔ)著第一幅金字塔頂層圖像d12;
(1b)cpu計(jì)算第二幅金字塔頂層圖像d12的移動(dòng)范圍:
cpu根據(jù)用戶輸入的第二幅原始sar圖像在不同區(qū)域的初始移動(dòng)范圍,即:水平移動(dòng)區(qū)間[-w,w],垂直移動(dòng)區(qū)間[-h,h],旋轉(zhuǎn)角度區(qū)間[-ang,ang],計(jì)算第二幅金字塔頂層圖像d12在不同區(qū)域的移動(dòng)范圍為:水平移動(dòng)區(qū)間
步驟2,gpu計(jì)算第二幅金字塔頂層圖像d12的移動(dòng)位置。
(2a)gpu生成第一幅金字塔頂層共有區(qū)域圖像d11'和第二幅金字塔頂層共有區(qū)域圖像d12':
(2a1)平移第二幅金字塔頂層圖像d12,得到平移后的圖像ds12;
gpu從步驟(1b)確定的第二幅金字塔頂層圖像d12移動(dòng)范圍內(nèi)選取一個(gè)移動(dòng)矢量(x1,y1,ang1),其中x1表示水平移動(dòng)的像素個(gè)數(shù),y1表示垂直移動(dòng)的像素個(gè)數(shù),ang1表示以圖像d12中心為原點(diǎn)順時(shí)針旋轉(zhuǎn)角度,并根據(jù)第二幅金字塔頂層圖像d12的寬w12和高h(yuǎn)12,在顯存中開辟寬為w12+2x1,高為h12+2y1的金字塔頂層平移數(shù)組δ1,然后將δ1清零;
gpu為平移數(shù)組δ1分配32×32個(gè)線程塊,每個(gè)線程塊再分配
線程將第二幅金字塔頂層圖像d12中索引為(x12,y12)的像素拷貝到金字塔頂層平移數(shù)組δ1中(x12+x1,y12+y1)的位置,則平移數(shù)組δ1存儲(chǔ)著第二幅金字塔頂層圖像d12平移后的圖像ds12;
(2a2)旋轉(zhuǎn)平移后的圖像ds12,得到移動(dòng)后的圖像dm1:
gpu在顯存中開辟寬為(2x1+w12)cos(ang1)+w12sin(ang1),高為(2x1+w12)sin(ang1)+w12cos(ang1)的金字塔頂層旋轉(zhuǎn)數(shù)組δ1',再分別獲取金字塔頂層平移數(shù)組δ1和金字塔頂層旋轉(zhuǎn)數(shù)組δ1'的首地址,將這兩個(gè)首地址和ang1輸入到gpu的仿射變換指令中,該指令執(zhí)行后,圖像ds12旋轉(zhuǎn)后的圖像被保存于金字塔頂層旋轉(zhuǎn)數(shù)組δ1'中,即得到第二幅金字塔頂層圖像d12移動(dòng)后的圖像dm1;
(2a3)cpu計(jì)算移動(dòng)后的圖像dm1與第一幅金字塔頂層圖像d11重疊部分的方形共有區(qū)域范圍:
(2a31)cpu根據(jù)圖像d12的移動(dòng)矢量(x1,y1,ang1),計(jì)算該方形共有區(qū)域的最大寬度l:
l=min(wm1,w11,hm1,h11),
其中,wm1和hm1為移動(dòng)后的圖像dm1的寬和高,w11和h11為第一幅金字塔頂層圖像d11的寬和高;
(2a32)將該方形共有區(qū)域在圖像d11中表示為第一頂層共有區(qū)域s11,cpu計(jì)算區(qū)域s11的寬cx11和高cy11為:
cpu計(jì)算區(qū)域s11左上角頂點(diǎn)在第一幅金字塔頂層圖像d11中的坐標(biāo)為:
((w11-cx11)/2+x1,(h11-cy11)/2-y1);
(2a33)將該方形共有區(qū)域在圖像d12中表示為第二頂層共有區(qū)域s12,cpu計(jì)算該區(qū)域的寬cx12和高cy12為:
cx12=cy12=cx11,
cpu計(jì)算區(qū)域s12左上角頂點(diǎn)在第二幅金字塔頂層圖像d12中的坐標(biāo)為:
((wm1-cx12)/2+x1,(hm1-cy12)/2-y1);
(2a4)gpu生成第一幅金字塔頂層共有區(qū)域圖像d11':
gpu在顯存中分配大小為cx11×cy11的第一頂層共有區(qū)域二維數(shù)組,將第一頂層共有區(qū)域s11中的所有像素拷貝到該二維數(shù)組中,得到第一幅金字塔頂層共有區(qū)域圖像d11';
(2a5)gpu生成第二幅金字塔頂層共有區(qū)域圖像d12':
gpu在顯存中分配大小為cx12×cy12的第二頂層共有區(qū)域二維數(shù)組,將第二頂層共有區(qū)域s12中的所有像素拷貝到該二維數(shù)組中,得到第二幅金字塔頂層共有區(qū)域圖像d12';
(2b)gpu計(jì)算兩幅金字塔頂層共有區(qū)域圖像d11'和d12'的互信息:
(2b1)gpu計(jì)算第一幅金字塔頂層共有區(qū)域圖像d11'的熵h11:
其中p11為第一幅金字塔頂層共有區(qū)域圖像d11'的灰度直方圖;
(2b2)gpu計(jì)算第二幅金字塔頂層共有區(qū)域圖像d12'的熵h12:
其中p12為第二幅金字塔頂層共有區(qū)域圖像d12'的灰度直方圖;
(2b3)計(jì)算兩幅金字塔頂層共有區(qū)域圖像d11'和d12'的聯(lián)合熵值h1:
其中p1為兩幅金字塔頂層共有區(qū)域圖像d11'和d12'的聯(lián)合灰度直方圖;
(2b4)計(jì)算兩幅頂層共有區(qū)域圖像d11'和d12'的互信息mi1:
(2c)gpu保存第二幅金字塔頂層圖像d12的移動(dòng)位置:
gpu根據(jù)步驟(1b)中第二幅原始sar圖像在不同區(qū)域的初始移動(dòng)范圍,在顯存中開辟大小為32×w×h×ang的一維整型數(shù)組作為互信息值集合ε;
gpu從步驟(1b)確定的第二幅金字塔頂層圖像d12的移動(dòng)范圍內(nèi)遍歷選取新的移動(dòng)矢量,并重復(fù)(2a)和(2b),將得到的互信息值和選取的第二幅金字塔頂層圖像d12移動(dòng)矢量加入互信息值集合ε中;
gpu在顯存中開辟大小為3的頂層配準(zhǔn)位置數(shù)組e1,再找出集合ε中最大的互信息值,將該最大互信息值對(duì)應(yīng)的第二幅頂層圖像d12移動(dòng)矢量存入配準(zhǔn)位置數(shù)組e1中,配準(zhǔn)位置數(shù)組e1即存儲(chǔ)著第二幅金字塔頂層圖像d12的移動(dòng)位置。
步驟3,gpu生成兩幅中間層圖像d21和d22,cpu計(jì)算第二幅金字塔中間層圖像d22的移動(dòng)范圍。
(3a)gpu生成第一幅金字塔中間層圖像d21和第二幅金字塔中間層圖像d22:
(3a1)根據(jù)第一幅原始sar圖像的寬w1和高h(yuǎn)1,gpu在顯存中開辟寬為
(3a2)gpu為第一幅金字塔中間層圖像d21分配32×32個(gè)線程塊;每個(gè)線程塊再分配
(3a3)利用第一金字塔中間層二維數(shù)組α2中元素(x2,y2)對(duì)應(yīng)的線程,將該元素賦值為第一幅原始sar圖像中(2x2,2y2)坐標(biāo)處的像素值,此時(shí)第一金字塔中間層二維數(shù)組α2即為第一幅金字塔中間層圖像d21;
(3a4)根據(jù)第二幅原始sar圖像的寬w2和高h(yuǎn)2,在gpu顯存中開辟寬為
(3a5)gpu為第二幅金字塔中間層圖像d22分配32×32個(gè)線程塊,每個(gè)線程塊再分配
(3a6)利用第二金字塔中間層二維數(shù)組β2中元素(x2',y2')對(duì)應(yīng)的線程,將該元素賦值為第二幅原始sar圖像(2x2',2y2')坐標(biāo)處的像素值,此時(shí)第二金字塔中間層二維數(shù)組β2即為第二幅金字塔中間層圖像d22。
(3b)cpu計(jì)算第二幅金字塔中間層圖像d22的移動(dòng)范圍:
cpu根據(jù)步驟(2c)保存的圖像d12移動(dòng)位置,先獲取該移動(dòng)位置的水平偏移a2、垂直偏移b2和旋轉(zhuǎn)角度θ2;
再確定金字塔中間層圖像d22在不同區(qū)域的移動(dòng)范圍,即水平移動(dòng)區(qū)間為[2a2-4,2a2+4],垂直移動(dòng)區(qū)間為[2b2-4,2b2+4],旋轉(zhuǎn)角度區(qū)間為[θ2-2,θ2+2]。
步驟4,計(jì)算第二幅金字塔中間層圖像d22的移動(dòng)位置。
(4a)gpu生成兩幅金字塔中間層共有區(qū)域圖像d21'和d22':
gpu從步驟(3b)確定的第二幅金字塔中間層圖像d22移動(dòng)范圍內(nèi)選取一個(gè)移動(dòng)矢量(x2,y2,ang2),其中x2表示水平移動(dòng)的像素個(gè)數(shù),y2表示垂直移動(dòng)的像素個(gè)數(shù),ang2代表第二幅金字塔中間層圖像d22順時(shí)針旋轉(zhuǎn)角度,并由該矢量移動(dòng)第二幅金字塔中間層圖像d22,得到金字塔中間層移動(dòng)后圖像dm2;
cpu計(jì)算該移動(dòng)后的圖像dm2與第一幅金字塔中間層圖像d21重疊部分的方形共有區(qū)域范圍,并將該共有區(qū)域在第一幅金字塔中間層圖像d21中表示為第一中間層共有區(qū)域s21,在金字塔中間層移動(dòng)后圖像dm2中表示為第二中間層共有區(qū)域s22;
gpu將區(qū)域s21和s22拷貝到新顯存空間,形成第一幅金字塔中間層共有區(qū)域圖像d21'和第二幅金字塔中間層共有區(qū)域圖像d22';
(4b)計(jì)算兩幅金字塔中間層共有區(qū)域圖像d21'和d22'的互信息:
(4b1)gpu計(jì)算第一幅金字塔中間層共有區(qū)域圖像d21'的熵值h21:
其中p21為第一幅金字塔中間層共有區(qū)域圖像d21'的灰度直方圖;
(4b2)gpu計(jì)算第二幅金字塔中間層共有區(qū)域圖像d22'的熵h22:
其中p22為第二幅金字塔中間層共有區(qū)域圖像d22'的灰度直方圖;
(4b3)gpu計(jì)算兩幅金字塔中間層圖像d21'和d22'的聯(lián)合熵值h2:
其中p2為兩幅金字塔中間層共有區(qū)域圖像d21'和d22'的聯(lián)合灰度直方圖;
(4b4)gpu計(jì)算兩幅金字塔中間層共有區(qū)域圖像d21'和d22'的互信息mi2:
(4c)gpu保存第二幅金字塔中間層圖像d22的移動(dòng)位置:
gpu將步驟(2c)產(chǎn)生的互信息值集合ε清零;再從步驟(3b)確定的第二幅金字塔中間層圖像d22移動(dòng)范圍內(nèi)遍歷選取新的第二幅金字塔中間層圖像d22移動(dòng)矢量,并將該移動(dòng)矢量加入互信息值集合ε中,再重復(fù)(4a)和(4b),將得到的互信息值也加入互信息值集合ε中;
gpu在顯存中開辟大小為3的中間層配準(zhǔn)位置數(shù)組e2,然后找出互信息值集合ε中最大的互信息值,將該最大互信息值對(duì)應(yīng)的第二幅金字塔中間層圖像d22移動(dòng)矢量存入中間層配準(zhǔn)位置數(shù)組e2中,即得到金字塔中間層圖像d22的移動(dòng)位置。
步驟5,cpu計(jì)算第二幅原始sar圖像的移動(dòng)范圍,并開辟配準(zhǔn)位置空間f。
(5a)cpu計(jì)算第二幅原始sar圖像的移動(dòng)范圍:
cpu根據(jù)步驟(4c)保存的第二幅金字塔中間層圖像d22移動(dòng)位置,先獲取該移動(dòng)位置的水平偏移a3、垂直偏移b3和旋轉(zhuǎn)角度θ3;再確定第二幅原始sar圖像在不同區(qū)域的移動(dòng)范圍,即水平移動(dòng)區(qū)間為[2a3-4,2a3+4],垂直移動(dòng)區(qū)間為[2b3-4,2b3+4],旋轉(zhuǎn)角度區(qū)間為[θ3-2,θ3+2]。
(5b)cpu開辟配準(zhǔn)位置空間f:
cpu在內(nèi)存開辟空間f用于存儲(chǔ)金字塔底層互信息值和第二幅原始sar圖像移動(dòng)矢量,并初始化空間f的互信息值為單精度浮點(diǎn)負(fù)無窮。
步驟6,計(jì)算第二幅原始sar圖像的配準(zhǔn)位置。
(6a)gpu生成兩幅底層共有區(qū)域圖像d31'和d32':
gpu從步驟(5a)確定的第二幅原始sar圖像移動(dòng)范圍內(nèi)選取一個(gè)移動(dòng)矢量(x3,y3,ang3),其中x3表示水平移動(dòng)的像素個(gè)數(shù),y3表示垂直移動(dòng)的像素個(gè)數(shù),ang3表示第二幅原始sar圖像的順時(shí)針旋轉(zhuǎn)角度,并由該矢量移動(dòng)第二幅原始sar圖像,得到第二幅原始sar圖像移動(dòng)后的圖像dm3,獲得該移動(dòng)后的圖像dm3與第一幅原始sar圖像重疊部分的方形共有區(qū)域;
將該共有區(qū)域在第一幅原始sar圖像中表示為第一金字塔底層共有區(qū)域s31,在移動(dòng)后的圖像dm3中表示為第二金字塔底層共有區(qū)域s32;
gpu將區(qū)域s31和s32拷貝到新顯存空間,形成第一幅金字塔底層共有區(qū)域圖像d31'和第二幅金字塔底層共有區(qū)域圖像d32';
(6b)計(jì)算兩幅底層共有區(qū)域圖像d31'和d32'的互信息:
(6b1)gpu計(jì)算第一幅金字塔底層共有區(qū)域圖像d31'的熵值h31:
其中p31為第一幅金字塔底層共有區(qū)域圖像d31'的灰度直方圖;
(6b2)計(jì)算第二幅底層共有區(qū)域圖像d32'的熵值h32:
其中p32為第二幅底層共有區(qū)域圖像d32'的灰度直方圖;
(6b3)計(jì)算兩幅底層共有區(qū)域圖像d31'和d32'的聯(lián)合熵值h3:
其中p3為兩幅金字塔底層共有區(qū)域圖像d31'和d32'的聯(lián)合灰度直方圖;
(6b4)計(jì)算兩幅底層共有區(qū)域圖像d31'和d32'的互信息mi3:
(6c)更新互信息值和移動(dòng)矢量:
cpu將互信息mi3與配準(zhǔn)位置空間f中存儲(chǔ)的互信息值進(jìn)行比較:如果互信息mi3比空間f存儲(chǔ)的互信息值大,則更改配準(zhǔn)位置空間f存儲(chǔ)的互信息值為mi3,同時(shí)更改配準(zhǔn)位置空間f存儲(chǔ)的移動(dòng)矢量為(x3,y3,ang3),否則,不進(jìn)行任何操作;
(6d)gpu獲取第二幅原始sar圖像的配準(zhǔn)位置:
gpu從步驟(5)確定的移動(dòng)范圍內(nèi)遍歷選取新的移動(dòng)矢量,重復(fù)(6a)、(6b)和(6c),配準(zhǔn)位置空間f存儲(chǔ)的互信息值即為金字塔底層最大互信息值mi,根據(jù)空間f存儲(chǔ)的移動(dòng)矢量得到第二幅原始sar圖像的配準(zhǔn)位置;
(6e)生成配準(zhǔn)后圖像:
gpu獲取空間f保存的移動(dòng)矢量,根據(jù)該移動(dòng)矢量再次移動(dòng)第二幅原始sar圖像,得到配準(zhǔn)后圖像d。
本發(fā)明的效果可通過以下仿真實(shí)驗(yàn)進(jìn)一步說明:
1、實(shí)驗(yàn)環(huán)境:
gpu:nvidiateslak40c,
處理器:intel(r)xeon(r)e5-2630v32.40ghz(2處理器),
內(nèi)存:64.0gb,
硬盤:2t,
操作系統(tǒng):microsoftwindows7sp164位,
編程工具:microsoftvisualstudio2010,cuda6.5。
2、實(shí)驗(yàn)內(nèi)容和結(jié)果分析:
實(shí)驗(yàn)1,用本發(fā)明對(duì)圖2a所示的第一幅原始sar圖像和圖2b所示的第二幅原始sar圖像進(jìn)行配準(zhǔn),結(jié)果如圖3所示,再將圖3配準(zhǔn)后的圖像與圖2a進(jìn)行重疊,得到重疊圖像,如圖4所示。
由圖4可以看出,重疊圖像清晰且輪廓無重影,表明本發(fā)明的配準(zhǔn)效果較好。
實(shí)驗(yàn)2,用本發(fā)明方法和現(xiàn)有cpu實(shí)現(xiàn)的傳統(tǒng)金字塔互信息配準(zhǔn)方法對(duì)不同尺寸的sar圖像進(jìn)行配準(zhǔn),并測(cè)量得到這兩種方法的配準(zhǔn)耗時(shí),其結(jié)果如表1所示:
表1本發(fā)明方法與現(xiàn)有cpu實(shí)現(xiàn)傳統(tǒng)金字塔互信息配準(zhǔn)方法的配準(zhǔn)耗時(shí)對(duì)比
由表1可知,本發(fā)明方法與現(xiàn)有cpu實(shí)現(xiàn)的傳統(tǒng)金字塔互信息配準(zhǔn)方法相比,配準(zhǔn)耗時(shí)大幅縮短;
實(shí)驗(yàn)3,用本發(fā)明方法和現(xiàn)有g(shù)pu實(shí)現(xiàn)的傳統(tǒng)金字塔互信息配準(zhǔn)方法對(duì)多幅已知配準(zhǔn)位置的sar圖像再次配準(zhǔn)以測(cè)試配準(zhǔn)精度,這兩種方法得到的配準(zhǔn)位置如表2所示。
表2本發(fā)明方法與現(xiàn)有g(shù)pu實(shí)現(xiàn)的傳統(tǒng)金字塔互信息配準(zhǔn)方法的配準(zhǔn)位置對(duì)比
表2中圖像尺寸、水平偏移、垂直偏移均以像素為單位,第二幅原始sar圖像是人工移動(dòng)第一幅原始sar圖像得到的,第二幅原始sar圖像即為實(shí)驗(yàn)圖片。
由表2可知,本發(fā)明均能正確配準(zhǔn)所有實(shí)驗(yàn)圖片,其得到的配準(zhǔn)位置均與正確配準(zhǔn)位置相同;雖現(xiàn)有方法能正確配準(zhǔn)實(shí)驗(yàn)圖片1,但未能正確配準(zhǔn)實(shí)驗(yàn)圖片2,其得到實(shí)驗(yàn)圖片2配準(zhǔn)位置的水平偏移與正確的水平偏移相差1個(gè)像素,且實(shí)驗(yàn)圖片2配準(zhǔn)位置的垂直偏移也與正確的垂直偏移相差1個(gè)像素;現(xiàn)有方法也未能正確配準(zhǔn)實(shí)驗(yàn)圖片3,其得到實(shí)驗(yàn)圖片3配準(zhǔn)位置的水平偏移也與正確的水平偏移相差1個(gè)像素。本發(fā)明與現(xiàn)有g(shù)pu實(shí)現(xiàn)的傳統(tǒng)金字塔互信息配準(zhǔn)方法相比,配準(zhǔn)精度提高。
以上是對(duì)本發(fā)明的一個(gè)具體實(shí)例,不構(gòu)成對(duì)本發(fā)明的任何限制,顯然,本領(lǐng)域的技術(shù)人員可以在不脫離本發(fā)精神和原理下進(jìn)行各種改動(dòng)和變型,但這些仍屬于本發(fā)明的保護(hù)范圍之內(nèi)。