全景圖像拼接研究_第1頁
全景圖像拼接研究_第2頁
全景圖像拼接研究_第3頁
全景圖像拼接研究_第4頁
全景圖像拼接研究_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、課程大作業(yè)實(shí)驗(yàn)報(bào)告全景圖像拼接研究課程名稱:數(shù)字圖像處理指導(dǎo)教師鄧?yán)^忠報(bào)告提交日期2011年12月8日項(xiàng)目答辯日期2011年12月9日摘要圖像拼接技術(shù)就是將數(shù)張有重疊部分的圖像(可能是不同時(shí)間、不同視角或者不同傳感器獲得的)拼成一幅大型的無縫高分辨率圖像的技術(shù)。本實(shí)驗(yàn)對截圖,實(shí)拍圖像進(jìn)行圖像的拼接,通過較精確的算法,將圖片進(jìn)行匹配融合拼接,最終得到無縫拼接的大角度圖像。目錄1全景圖像拼接背景及要求11.1項(xiàng)目前景11.2作業(yè)要求12全景圖像拼接原理說明12.1什么是全景圖像拼接12.2匹配拼接基本原理13程序設(shè)計(jì)33.1程序流程圖及說明33.2程序主要模塊介紹43.3算法實(shí)現(xiàn)的關(guān)鍵問題及解決方

2、法64實(shí)驗(yàn)結(jié)果與分析74.1實(shí)驗(yàn)結(jié)果74.2項(xiàng)目創(chuàng)新處104.3存在問題及改進(jìn)設(shè)想105心得體會(huì)106參考文獻(xiàn)111全景圖像拼接背景及要求1.1項(xiàng)目前景給定某個(gè)場景的一組互相有重疊的局部圖像,如何生成包含著這組局部圖像的新的較大的視圖,稱為圖像的拼接(stitch)問題,有時(shí)也稱為圖像鑲嵌(mosaic)。圖像拼接技術(shù)的 研究是在現(xiàn)實(shí)應(yīng)用的需求下逐漸發(fā)展起來的,現(xiàn)已成為計(jì)算機(jī)視覺和計(jì)算機(jī)圖形學(xué)的研究焦點(diǎn)。圖像拼接技術(shù)廣泛應(yīng)用于數(shù)字視頻、MPEG-4 編碼、運(yùn)動(dòng)分析、虛擬現(xiàn)實(shí)技術(shù)、遙感圖像處理、醫(yī)學(xué)圖像分析等領(lǐng)域。1.2作業(yè)要求1)自行搜集與閱讀相關(guān)的圖像全景拼接的資料;2 )嘗試對全景圖像拼接

3、進(jìn)行編程,可以考慮采用上述三種函數(shù)。3 )在校園采集圖像,進(jìn)行全景拼接實(shí)驗(yàn),并改進(jìn)程序,盡可能做到無縫拼接。2全景圖像拼接原理說明2.1什么是全景圖像拼接全景圖像拼接是利用照相機(jī)平移或旋轉(zhuǎn)得到的部分重疊圖像樣本生成一個(gè)較大的甚至左右對接的全方位圖像的場景繪制方法。2.2基本原理(匹配拼接)2.2.1圖像獲取首先網(wǎng)上下載圖片截取分塊,也可實(shí)拍取景圖像。如果實(shí)景取材的話,因?yàn)?60度全景圖像的素材, 是通過利用普通照相機(jī)采集的照片, 經(jīng)過數(shù)字化得到的邊界部分重疊的圖像。因?yàn)槿皥D像表示的是人在某一視點(diǎn)觀察空間, 視點(diǎn)不動(dòng)而觀察方向改變。所以在拍照時(shí)將照相機(jī)固定在支架上, 盡量避免轉(zhuǎn)動(dòng)時(shí)鏡頭的偏斜和

4、俯仰, 并以鏡頭為軸轉(zhuǎn)動(dòng)一周連續(xù)拍照。拍照時(shí)使相鄰圖像具有一定程度的內(nèi)容重疊, 以便于拼接而得到全景圖像。2.2.2圖像重疊區(qū)域的確定由于基于面積的方法計(jì)算量太大, 只利用一列像素又經(jīng)常造成誤匹配, 所以算法的思路是在圖像二上一定模塊上相隔一定距離提取像素點(diǎn),得到一個(gè)比較樣本模板,然后掃描第一幅圖像。首先為了減少運(yùn)算量,設(shè)一個(gè)適當(dāng)?shù)谋闅v“buchang”,掃描找到一個(gè)最少差值的坐標(biāo)之后就確定了樣本模塊在圖像一中的大概位置,然后再在該坐標(biāo)周圍的一個(gè)網(wǎng)格的范圍內(nèi)進(jìn)行掃描,最小差值的坐標(biāo)即為最佳匹配。匹配分為粗略匹配部分跟精確匹配部分。粗略匹配:把SourceImage1跟SourceImage2分

5、別分離R、G、B之后從redImge2的一半高度處提取一個(gè)26*26大小的網(wǎng)格,每隔兩個(gè)格提取一個(gè)像素點(diǎn),得到一個(gè)樣本模板。由于圖像的重疊部分只占圖像的30%-50%,所以從redImage1的二分之一寬度初開始掃描,每隔“buchang”的距離提取一個(gè)跟樣本模板一樣大小的網(wǎng)格,用樣本模板跟在redImage1提取的網(wǎng)格進(jìn)行比較,掃描一遍后可以得到一個(gè)粗略的樣本模板在SourceImage1中的重疊位置min_x,min_y,跟一個(gè)粗略的最小差值min_value。精確匹配:這次的掃描范圍是(min_x-buchang/2,min_x+buchang/2)*(min_y-buchang/2,m

6、in_y+buchang/2).跟粗略匹配一樣地提取網(wǎng)格,這次每次移動(dòng)一個(gè)像素點(diǎn),然后就得到一個(gè)最佳的匹配坐標(biāo)min_x,min_y,跟一個(gè)經(jīng)過精確匹配的最小差值min_value,(min_x,min_y)就是redImage2二分之一高度處提取的模板在redImage1中對應(yīng)的位置。2.2.3圖像連接找到重疊范圍, 如果僅僅是簡單的疊加, 會(huì)造成圖像明顯的邊界,而且會(huì)發(fā)生錯(cuò)位,所以我們采用多種情況討論的方法,實(shí)現(xiàn)圖像的精確定位,總體有4種情況,具體看程序中的解析。我們沒有采用圖像融合是因?yàn)椋艺J(rèn)為在理想的圖片中沒有必要采用圖像融合,而在實(shí)拍圖像中,越遠(yuǎn)離中心焦點(diǎn)的像素點(diǎn)畸變越嚴(yán)重,我認(rèn)為疊

7、加的效果會(huì)更加不好。所以就沒有融合而采用拼接。由于拍攝的是平面圖,拼接出來的圖片有比較明顯的菱形感,我設(shè)想可以運(yùn)用參考文獻(xiàn)6中的方法在圖像的預(yù)處理中先將平面圖投射到一個(gè)柱面上去,由于過于復(fù)雜,在本次作業(yè)中沒有使用,在日后希望可以得到改進(jìn)。圖1 拼接處理示意圖3程序設(shè)計(jì)3.1程序流程圖及說明源圖像二源圖像一匹配拼接把拼接好的圖像復(fù)制給源圖像一圖像三匹配拼接把拼接好的圖像復(fù)制給源圖像一圖像四、五.循環(huán)拼接360度全景圖圖2 程序流程圖3.2程序主要模塊介紹3.2.1 界面設(shè)計(jì)圖3 程序主界面3.2.2 部分程序通過灰度值的處理,將圖像進(jìn)行粗略與精確匹配。/以下部分為粗略匹配 for(x=(widt

8、h1/2);x<(width1-20);x=x+buchang) for(y=0;y<(height1-20);y=y+buchang) m=0; value=0; for(i=0;i<20;i=i+2) for(j=0;j<20;j=j+2) IPI_GetPixelValue(redImage1,x+i,y+j,&gray_value); gird1m=gray_value; m+; for(m=0;m<100;m+) value += fabs(gird1m-gird2m) ; if(value<min_value) ; min_value=v

9、alue; min_x=x; min_y=y; SetCtrlVal(panel,PANEL_NUMERIC_2,min_x); SetCtrlVal(panel,PANEL_NUMERIC_3,min_y); SetCtrlVal(panel,PANEL_NUMERIC_4,value); /以下為精確匹配 for(x=(min_x-3);x<=(min_x+3);x+) for(y=(min_y-3);y<=(min_y+3);y+) m=0; value=0; for(i=0;i<20;i=i+2) for(j=0;j<20;j=j+2) IPI_GetPixel

10、Value(redImage1,x+i,y+j,&gray_value); gird1m=gray_value; m+; for(m=0;m<100;m+) value=value+fabs(gird1m-gird2m) ; /求灰度值的差值 if(value<min_value) min_value=value; min_x=x; min_y=y; /以下兩段是找到最優(yōu)拼接點(diǎn)后兩幅圖像拼接,分兩種情況 if(min_y>(height2/2) for(i=0;i<width1;i+) for(j=0;j<height1;j+)IPI_GetPixelVa

11、lue (redImage1,i,j,&gray_value); IPI_SetPixelValue (redImage,i,j,gray_value); IPI_GetPixelValue (greenImage1,i,j,&gray_value); IPI_SetPixelValue (greenImage,i,j,gray_value); IPI_GetPixelValue (blueImage1,i,j,&gray_value); IPI_SetPixelValue (blueImage,i,j,gray_value); for(i=width1;i<wi

12、dth;i+) for(j=0;j<(min_y-height2/2);j+) IPI_SetPixelValue (redImage,i,j,0); IPI_SetPixelValue (blueImage,i,j,0); IPI_SetPixelValue (greenImage,i,j,0); for(i=min_x;i<width;i+) for(j=0;j<(min_y+height2/2);j+) IPI_GetPixelValue (redImage2,i-min_x,j-(min_y-height2/2),&gray_value); IPI_SetPi

13、xelValue (redImage,i,j,gray_value); IPI_GetPixelValue (greenImage2,i-min_x,j-(min_y-height2/2),&gray_value); IPI_SetPixelValue (greenImage,i,j,gray_value); IPI_GetPixelValue (blueImage2,i-min_x,j-(min_y-height2/2),&gray_value); IPI_SetPixelValue (blueImage,i,j,gray_value); if(height>heigh

14、t1)for(i=0;i<min_x;i+) for(j=height1;j<height;j+) IPI_SetPixelValue (redImage,i,j,0); IPI_SetPixelValue (blueImage,i,j,0); IPI_SetPixelValue (greenImage,i,j,0); else if(height=height1) for(i=width1;i<width;i+) for(j=(height2/2+min_y);j<height;j+) IPI_SetPixelValue (redImage,i,j,0); IPI_S

15、etPixelValue (blueImage,i,j,0); IPI_SetPixelValue (greenImage,i,j,0); else if(min_y<=height2/2) for(i=0;i<min_x;i+) for(j=0;j<(height2/2-min_y);j+) IPI_SetPixelValue (redImage,i,j,0); IPI_SetPixelValue (blueImage,i,j,0); IPI_SetPixelValue (greenImage,i,j,0); for(i=min_x;i<width;i+) for(j

16、=0;j<height2;j+) IPI_GetPixelValue (redImage2,i-min_x,j,&gray_value); IPI_SetPixelValue (redImage,i,j,gray_value); IPI_GetPixelValue (blueImage2,i-min_x,j,&gray_value); IPI_SetPixelValue (blueImage,i,j,gray_value); IPI_GetPixelValue (greenImage2,i-min_x,j,&gray_value); IPI_SetPixelVal

17、ue (greenImage,i,j,gray_value); for(i=0;i<width1-1;i+) for(j=(height2/2-min_y);j<(height2/2-min_y+height1);j+) IPI_GetPixelValue (redImage1,i,j-(height2/2-min_y),&gray_value); IPI_SetPixelValue (redImage,i,j,gray_value); IPI_GetPixelValue (blueImage1,i,j-(height2/2-min_y),&gray_value);

18、 IPI_SetPixelValue (blueImage,i,j,gray_value); IPI_GetPixelValue (greenImage1,i,j-(height2/2-min_y),&gray_value); IPI_SetPixelValue (greenImage,i,j,gray_value); if(height=height2) for(i=0;i<min_x;i+) for(;j<height;j+) IPI_SetPixelValue (redImage,i,j,0); IPI_SetPixelValue (blueImage,i,j,0);

19、 IPI_SetPixelValue (greenImage,i,j,0); else for(i=width1;i<width;i+) for(j=height2;j<height;j+) IPI_SetPixelValue (redImage,i,j,0); IPI_SetPixelValue (blueImage,i,j,0); IPI_SetPixelValue (greenImage,i,j,0); 通過程序?qū)煞鶊D像無縫拼接成一幅圖像,再點(diǎn)擊打開子圖像打開另一幅圖再實(shí)行拼接,依此循環(huán)拼接成一幅360度的全景圖像。3.3算法實(shí)現(xiàn)的關(guān)鍵問題及解決方法因?yàn)槿皥D像表示的是人在

20、某一視點(diǎn)觀察空間,視點(diǎn)不動(dòng)而觀察的方向改變。所以在拍照時(shí)將照相機(jī)固定在支架上,盡量避免轉(zhuǎn)動(dòng)時(shí)鏡頭的偏斜和付俯仰,并以鏡頭為軸轉(zhuǎn)動(dòng)一周連續(xù)拍照。拍照時(shí)使相鄰圖像具有一定程度的內(nèi)容重疊,以便于拼接而得到全景圖像。圖像重疊范圍的確定主要是基于兩圖像重疊部分對應(yīng)像素的相似性,即在R GB或Y GB空間上具有基本相同的值。過去的一種作法是基于面積的算法,即取前一幅圖像中的一塊作為模塊,在第二幅圖像中搜索具有相同(或相似)值的對應(yīng)塊,從而確定兩幅圖像的重疊范圍。但這種算法計(jì)算量太大,而且受光照條件的影響,所以往往不實(shí)用。我們在從事全景圖像拼接研究的項(xiàng)目中,提出了一種新的圖像拼接算法,并在實(shí)驗(yàn)中予以證實(shí),發(fā)

21、現(xiàn)它不僅計(jì)算量大大減少而且行之有效,而且還可用于立體圖像對的配準(zhǔn)。4實(shí)驗(yàn)結(jié)果與分析4.1實(shí)驗(yàn)結(jié)果圖4 程序主界面1截圖循環(huán)拼接圖5 拼接前的圖像圖6 拼接后的圖像2實(shí)拍循環(huán)拼接圖7 華農(nóng)宿舍(拼接前)圖8 華農(nóng)宿舍(拼接后)圖9 華山西湖(拼接前)圖10 華山西湖(拼接后)圖像基本實(shí)現(xiàn)拼接,圖像與圖像之間的拼接處有細(xì)微的褶皺,拼接的平滑效果仍有待改進(jìn)。4.2項(xiàng)目創(chuàng)新之處實(shí)現(xiàn)了圖像的錯(cuò)位拼接,使圖像的拼接誤差大大減小。4.3存在問題及改進(jìn)設(shè)想在對全景圖像拼接的研究中,我們利用算法來制作大角度圖像拼接,將組成全景的若干張圖像拼接起來。在處理效果上,圖像拼接基本能夠完成,并且能實(shí)現(xiàn)錯(cuò)位拼接,但是拼接

22、的平滑效果還不是那么好,有待進(jìn)一步的提升。在接下來的時(shí)間里,我們將對圖像拼接的平滑效果進(jìn)行進(jìn)一步的研究,以求達(dá)到更好的效果。4.4作品擴(kuò)展生成360度柱面全景圖像生成360度柱面全景圖像:360度圓柱面全景圖像雖然只能反映視點(diǎn)前后左右的空間信息,而不能反映上下的情況。但與球面和立方體表面全景圖像相比,圓柱面全景圖像構(gòu)造簡單:將照相機(jī)以相同的焦距,繞其鏡頭中點(diǎn)旋轉(zhuǎn)一周并間隔一定角度進(jìn)行拍攝然后把一些邊緣相互重疊的相片投影到圓柱面上,最后經(jīng)無縫拼接得到全景圖像。觀看時(shí)對圓柱面全景圖像進(jìn)行反投影,就可以得到觀察平面的圖像。360度柱面全景圖像的制作分為三步:一是進(jìn)行局部圖像的柱面投影,二是基于兩重疊投影圖像的像素相關(guān)性進(jìn)行匹配以確定重疊范圍,三是無縫拼接。4.41柱面投影算法及實(shí)現(xiàn)柱面投影就是將圖像投影到柱面上,它是一種透視投影而非平行投影

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論