




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、圖像拼接報告學(xué)院(系): 軟件學(xué)院 專 業(yè): 軟件工程(日強) 班 級: 0809 學(xué) 號: 200892066 姓 名: 師慧波 大連理工大學(xué)Dalian University of Technology圖像拼接技術(shù)研究的背景及意義在實際應(yīng)用中,經(jīng)常會用到超過人眼視野范圍甚至是全方位的高分辨率圖像,普通數(shù)碼相機的視野范圍往往難以滿足要求。為了得到大視野范圍的圖像,人們使用廣角鏡頭和掃描式相機進行拍攝。但這些設(shè)備往往價格昂貴、使用復(fù)雜,而且在一幅低分辨率的圖像中得到超寬視角會損失景物中物體的分辨率,所以,使用廣角鏡頭和掃描式相機只能部分的解決這一問題。此外,廣角鏡頭的圖像邊緣會難以避免的產(chǎn)生扭
2、曲變形,不利于一些場合的應(yīng)用。為了在不降低圖像分辨率的條件下獲取大視野范圍的圖像,人們提出了圖像拼接技術(shù),將普通圖像或視頻圖像進行無縫拼接,得到超寬視角甚至360度的全景圖,這樣就可以用普通數(shù)碼相機實現(xiàn)場面宏大的景物拍攝。利用計算機進行匹配,將多幅具有重疊關(guān)系的圖像拼合成為一幅具有更大視野范圍的圖像,這就是圖像拼接的目的。本文的研究內(nèi)容與組織結(jié)構(gòu)本文研究的重點是使用數(shù)碼相機或手機手持拍攝的圖像的全自動拼接。算法的基本流程如下:(1) 讀取n副連續(xù)有重疊部分的圖像,在n副圖像中檢測SIFT特征,并用SIFT特征描述子對其進行描述。(2) 匹配相鄰圖像的特征點,并根據(jù)特征點向量消除誤匹配。(3)
3、使用RANSAC方法,確定變換參數(shù)。(4) 圖像融合簡介對手持相機拍攝得到的照片,即相機運動不受限制,兩幅圖像的關(guān)系可近似歸結(jié)為初等坐標(biāo)變換,即平移、旋轉(zhuǎn)和縮放的組合。設(shè),為兩幅圖像的對應(yīng)點,則二者關(guān)系由下式確定 (1)其中是兩點的齊次坐標(biāo),M是兩圖像間的變換矩陣,含有八個參數(shù)。一旦M確定,則兩幅圖像的變換關(guān)系即可確定。如何確定矩陣M? 首先確定一定數(shù)量的特征點,利用特征點的匹配給出圖像變換的估計初值,最后通過遞歸算法得到最后的變換。特征提取與匹配采用SIFT算法進行特征點的提取與匹配。主要包含4個步驟:1、 建立尺度空間,尋找候選點2、 精確確定關(guān)鍵點,剔除不穩(wěn)定點3、 確定關(guān)鍵點的方向4、
4、 提取特征描述符本文中matlab實現(xiàn)代碼如下:im11 = imgccc-1; im22 = imgccc;im1, des1, loc1 = sift2(im11);im2, des2, loc2 = sift2(im22); distRatio = 0.6; des2t = des2' match(size(des1,1) = 0;for i = 1 : size(des1,1) dotprods = des1(i,:) * des2t; vals,indx = sort(acos(dotprods); if (vals(1) < distRatio * vals(2) m
5、atch(i) = indx(1); endendim3 = appendimages(im1,im2); figure('Position', 100 100 size(im3,2) size(im3,1);colormap('gray');imagesc(im3);hold on;cols1 = size(im1,2);hold off;num = sum(match > 0);fprintf('Found %d matches.n', num);其中sift2封裝了sift特征點提取,返回值des是特征描述子;appendimages
6、函數(shù)實現(xiàn)了兩幅圖像邊挨邊拼接。詳細代碼見sift2.m和appendimages.m消除誤匹配假設(shè)同一個相機拍出的圖像尺度差別比較小。因此對于兩對匹配點(P1,Q1)(P2,Q2),向量P1P2, Q1Q2的夾角比較小,同時|P1P2| 和 |Q1Q2| 的值也比較接近。我們記錄一個匹配點與其他匹配點形成的向量,并記錄待匹配圖像中的對應(yīng)匹配點與其他相應(yīng)匹配點形成的向量,通過比較,記錄該匹配點通過匹配閾值的個數(shù),如果超過匹配點總數(shù)的4/5,則該匹配點是正確匹配。否則為誤匹配。 圖1,消除誤匹配matlab實現(xiàn)代碼如下:KeyPoints(num,4) = 0;j = 1;for i = 1: s
7、ize(des1,1) if (match(i) > 0) KeyPoints(j,1) = loc1(i,2); KeyPoints(j,2) = loc1(i,1); KeyPoints(j,3) = loc2(match(i),2); KeyPoints(j,4) = loc2(match(i),1); j = j+1; endendyuzhi_y = min(size(im11,1),size(im22,1);yuzhi_x = min(size(im11,2),size(im22,2);yuzhi = sqrt(yuzhi_y2+ yuzhi_x2); PointDis(num
8、) = 0;for i = 1:size(KeyPoints,1) for j = 1:size(KeyPoints,1) a = abs(KeyPoints(i,1) - KeyPoints(j,1),abs(KeyPoints(i,2) - KeyPoints(j,2); b = abs(KeyPoints(i,3) - KeyPoints(j,3),abs(KeyPoints(i,4) - KeyPoints(j,4); xiangsi = dot(a,b)/(norm(a)*norm(b); if (xiangsi<cos(pi/4)|norm(a) - norm(b) >
9、yuzhi/10) PointDis(i) = PointDis(i) +1; end endendj = 0;for i=1:num if (PointDis(i) >num/6 ) KeyPoints(i,1) = inf; j=j+1; endendKeyPoints2(num -j,4) = 0;z = 1;for i=1:num if (KeyPoints(i,1)=inf) KeyPoints2(z,:) = KeyPoints(i,:); z= z+1; endendKeyPoints = KeyPoints2;num = size(KeyPoints,1); for i
10、= 1: num line(KeyPoints(i,1) KeyPoints(i,3)+cols1, . KeyPoints(i,2) KeyPoints(i,4), 'Color', 'c');end確定變換參數(shù)我們用平面透視變換來表示圖像間的幾何關(guān)系:為了恢復(fù)M中的8個參數(shù),需要4對匹配點來求解。我們使用RANSAC(Random Sample Consensus)方法來尋找兩幅圖像間最佳的4對匹配點,得到相應(yīng)的H陣,并剔除誤配點。前面自動提取和匹配得到的初始匹配特征點對集合中難免存在誤配點,此外特征點在提取時也存在一定的精度誤差,因此需要一種容錯能力很強的
11、算法來過濾初始匹配特征點對集合,而RANSAC正是這樣的一種算法,其具體內(nèi)容可描述如下:給定N個數(shù)據(jù)點組成的數(shù)據(jù)集合P,假設(shè)這N個數(shù)據(jù)點中的絕大部分是由一個參數(shù)未知的特定模型產(chǎn)生,而該模型至少需要n個數(shù)據(jù)點來求解,且N>n,則可以通過下面的迭代過程求解該模型的參數(shù)。將以下步驟運行k次: (1)從P中隨機選取n個數(shù)據(jù)點的子集S。(2)由選取的這n個數(shù)據(jù)點計算出一個模型M。(3)對數(shù)據(jù)集合中其余的N一n個數(shù)據(jù)點,計算它們與模型肘之間的距離,記錄P中在M的某個誤差允許范圍內(nèi)的數(shù)據(jù)點的個數(shù)c。迭代(1)(3)k次后,對應(yīng)最大c值的模型即為所求,數(shù)據(jù)集合P中的這c個數(shù)據(jù)即為內(nèi)點,其余的NC個數(shù)據(jù)即
12、為外點。matlab實現(xiàn)代碼如下:DDmin =5000;for ll = 1:6 zNum = 1; while (1) if (zNum>num*6) break; end zNum = zNum+1; DD(15) = 0; H(3,3,15) = 0; for k = 1:15 while (1) suiji = round(rand(1,4)*(num-1) +1); if (sum(find(suiji = inf) = 0) break; end end j =1; for i = 1:4 x2 = KeyPoints(suiji(i),1); y2 = KeyPoints
13、(suiji(i),2); x = KeyPoints(suiji(i),3); y = KeyPoints(suiji(i),4); %line(x2 x+cols1,y2 y,'Color', 'c'); A(j,:) = x , y,1,0,0,0,-x*x2, -x2*y; D(j) = x2; j= j +1; A(j,:) = 0,0,0,x,y,1,-x*y2,-y2*y; D(j) = y2; j = j+1; %B(i-1,:)=x,y,x2,y2; end y = inv(A)*D' H (:,:,k)= y(1),y(2),y(3)
14、;y(4),y(5),y(6);y(7),y(8),1; if (sum(H = inf)>0) continue; else for in1 = 1:num TT = H(:,:,k)*KeyPoints(in1,3); KeyPoints(in1,4); 1; DD(k) = DD(k)+sqrt(TT(1) - KeyPoints(in1,1)2+(TT(2) - KeyPoints(in1,2)2); end end end val3,indx3 = sort(DD); i = 1; while (1) if (H(1,1,indx3(i)=inf|DD(indx3(i)=0)
15、i = i + 1; else break; end end if (DD(indx3(i) <=DDmin) DDmin =DD(indx3(i); Hfinal = H(:,:,indx3(i); break; end endend HfinalMax(:,:,ccc-1)= Hfinal;for tc = 1:ccc-1 if (ccc-tc-1=0) break; else Hfinal = HfinalMax(:,:,ccc-tc-1)*Hfinal; endend圖像融合1.圖像旋轉(zhuǎn)之后可能新的像素點并不在實際的像素位置,因此需要插值處理。建議使用雙線性插值。2.對于重合的部
16、分的像素值可以有如下計算辦法: 圖2 圖像融合方法我們采用method1matlab實現(xiàn)代碼如下:edgept1 = round(Hfinal*size(im22,2);size(im22,1);1);edgept2 = round(Hfinal*1;size(im22,1);1);edgept3 = round(Hfinal*1;1;1);edgept4 = round(Hfinal*size(im22,2);1;1);height = max(size(im11,1),edgept1(2),edgept2(2),edgept3(2),edgept4(2);width = max(size(
17、im11,2),edgept1(1),edgept2(1),edgept3(1),edgept4(1); t2(height,width,3)=0;t2 = uint8(t2); if (ccc=2) im11 = curImg2;end for i = 1:size(im11,1) for j = 1:size(im11,2) t2(i,j,:) = im11(i,j,:); end endp1 = round(size(im11,2) /2),round(size(im11,1) /2);p2 = round(Hfinal*size(im22,2);size(im22,1);1); for
18、 i = 1:size(im22,1) for j = 1:size(im22,2) x = Hfinal*j;i;1; tx = max(1,round(x(2); ty = max(1,round(x(1); if (t2(tx,ty,1)=0&&t2(tx,ty,2)=0&&t2(tx,ty,3)=0) d1 = sqrt(ty-p1(1)2+(tx-p1(2)2); d2 = sqrt(ty-p2(1)2+(tx-p2(2)2); para1 = d2/(d1+d2); para2 = d1/(d1+d2); t2(tx,ty,:) = round(im22(i,j,:).*para2 + t2(tx,ty,:).*para1); else t2(tx,ty,:) = im22(i,j,:); end ende
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 借款抵押黃金合同范本
- 分公司工程合同范本
- 上海品質(zhì)化工產(chǎn)品合同范本
- 加油站財產(chǎn)租賃合同范本
- 公司贊助旅游合同范本
- 單位店面出售合同范本模板
- 九幾買賣合同范本
- 加盟藝校授權(quán)合同范本
- oem代工合同范本英文
- 科學(xué)飲食與藥物療法在健康促進中的重要性
- 醫(yī)院護理人文關(guān)懷實踐規(guī)范專家共識課件
- DeepSeek在自然災(zāi)害預(yù)警中的潛力
- 2025年中國國投高新產(chǎn)業(yè)投資集團招聘筆試參考題庫含答案解析
- 2024-2025學(xué)年小學(xué)美術(shù)一年級下冊(2024)嶺南版(2024)教學(xué)設(shè)計合集
- 《研學(xué)旅行課程設(shè)計》課件-研學(xué)課程設(shè)計計劃
- 年產(chǎn)10噸功能益生菌凍干粉的工廠設(shè)計改
- 中醫(yī)痹癥-課件
- 學(xué)習(xí)疊層母排必須知道的電力知識
- 微波與天線矩形波導(dǎo)
- 19+張愛玲經(jīng)典《金鎖記》英文版
- 電梯維修作業(yè)指導(dǎo)書
評論
0/150
提交評論