




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、clc clear all % 讀入圖片 pic1=imread('lena1.jpg'); pic2=imread('lena2.jpg'); % Harris角點(diǎn)檢測(cè) points1=myHarris(pic1); points2=myHarris(pic2); % 畫(huà)出Harris角點(diǎn) figure(1) drawHarrisCorner(pic1,points1,pic2,points2); % 角點(diǎn)特征描述 des1=myHarrisCornerDescription(pic1,points1); des2=myHarrisCornerDescript
2、ion(pic2,points2); % 角點(diǎn)粗匹配 matchs=myMatch(des1,des2); % 獲取各自出匹配角點(diǎn)位置 matchedPoints1=points1(matchs(:,1),:); matchedPoints2=points2(matchs(:,2),:); % 粗匹配角點(diǎn)連線 figure(2) drawLinedCorner(pic1,matchedPoints1,pic2,matchedPoints2); % 角點(diǎn)精匹配 newLoc1,newLoc2=pointsSelect(matchedPoints1,matchedPoints2); % 精匹配角點(diǎn)
3、連線 figure(3) drawLinedCorner(pic1,newLoc1,pic2,newLoc2); % 圖像拼接 im=picMatched(pic1,newLoc1,pic2,newLoc2); % 顯示拼接圖像 figure(4) imshow(im); set(gcf,'Color','w'); function points=myHarris(pic) % 功能:尋找Harris角點(diǎn) % 輸入:RGB圖像或gray圖% 輸出:角點(diǎn)所在的行、縱的N×2矩陣 if length(size(pic)=3 pic=rgb2gray(pic
4、); end pic=double(pic); hx=-1 0 1; Ix=filter2(hx,pic); hy=-1;0;1; Iy=filter2(hy,pic); Ix2=Ix.*Ix; Iy2=Iy.*Iy; Ixy=Ix.*Iy; h=fspecial('gaussian',7 7,2); Ix2=filter2(h,Ix2); Iy2=filter2(h,Iy2); Ixy=filter2(h,Ixy); heigth,width=size(pic); alpha=0.06; R=zeros(heigth,width); for i=1:heigth for j=
5、1:width M=Ix2(i,j) Ixy(i,j);Ixy(i,j) Iy2(i,j); R(i,j)=det(M)-alpha*(trace(M)2); end end Rmax=max(max(R); pMap=zeros(heigth,width); for i=2:heigth-1 for j=2:width-1 if R(i,j)>0.01*Rmax tm=R(i-1:i+1,j-1:j+1); tm(2,2)=0; if R(i,j)>tm pMap(i,j)=1; end end end end row,col=find(pMap=1); points=row,c
6、ol; function drawHarrisCorner(pic1,points1,pic2,points2) % 功能:畫(huà)出Harris角點(diǎn)的連接% 輸入: % pic1、pic2:待拼接的圖像 % points1、points2:Harris角點(diǎn)位置 X1=points1(:,2); Y1=points1(:,1); X2=points2(:,2); Y2=points2(:,1); dif=size(pic1,2); imshowpair(pic1,pic2,'montage'); hold on plot(X1,Y1,'b*'); plot(X2+di
7、f,Y2,'b*'); set(gcf,'Color','w'); function des=myHarrisCornerDescription(pic,points) % 功能:Harris角點(diǎn)特征描述 % 輸入: % pic:原圖像 % points:角點(diǎn)位置 % 輸出: % des:8×N的角點(diǎn)特征描述矩陣 if length(size(pic)=3 pic=rgb2gray(pic); end len=length(points); des=zeros(8,len); for k=1:len p=points(k,:); pc=
8、pic(p(1),p(2); des(1,k)=pic(p(1)-1,p(2)-1)-pc; des(2,k)=pic(p(1),p(2)-1)-pc; des(3,k)=pic(p(1)+1,p(2)-1)-pc; des(4,k)=pic(p(1)+1,p(2)-pc; des(5,k)=pic(p(1)+1,p(2)+1)-pc; des(6,k)=pic(p(1),p(2)+1)-pc; des(7,k)=pic(p(1)-1,p(2)+1)-pc; des(8,k)=pic(p(1)-1,p(2)-pc; des(:,k)=des(:,k)/sum(des(:,k); end fun
9、ction matchs=myMatch(des1,des2)% 功能:特征點(diǎn)雙向匹配 % 輸入: % des1、des2:特征點(diǎn)描述信息構(gòu)成的矩陣 % 輸出: % matchs:匹配的特征點(diǎn)對(duì)應(yīng)關(guān)系 len1=length(des1); len2=length(des2); match1=zeros(len1,2); cor1=zeros(1,len2); for i=1:len1 d1=des1(:,i); for j=1:len2 d2=des2(:,j); cor1(j)=(d1'*d2)/sqrt(d1'*d1)*(d2'*d2); end ,indx=max
10、(cor1); match1(i,:)=i,indx; end match2=zeros(len2,2); cor2=zeros(1,len1); for i=1:len2 d2=des2(:,i); for j=1:len1 d1=des1(:,j); cor2(j)=(d1'*d2)/sqrt(d1'*d1)*(d2'*d2); end ,indx=max(cor2); match2(i,:)=indx,i; end matchs=; for i=1:length(match1) for j=1:length(match2) if match1(i,:)=match
11、2(j,:) matchs=matchs;match1(i,:); end end end function drawLinedCorner(pic1,loc1,pic2,loc2)% 功能:畫(huà)出匹配角點(diǎn)的連接 % 輸入: % pic1、pic2:待拼接的圖像 % loc1、loc2:匹配角點(diǎn)位置 X1=loc1(:,2); Y1=loc1(:,1); X2=loc2(:,2); Y2=loc2(:,1); dif=size(pic1,2); imshowpair(pic1,pic2,'montage'); hold on for k=1:length(X1) plot(X1(
12、k),Y1(k),'b*'); plot(X2(k)+dif,Y2(k),'b*'); line(X1(k),X2(k)+dif,Y1(k),Y2(k),'Color','r'); end set(gcf,'Color','w'); function newLoc1,newLoc2=pointsSelect(loc1,loc2) % 功能:篩選匹配特征點(diǎn)對(duì),獲取高精度的控制點(diǎn) % 輸入: % loc1、loc2:粗匹配特征點(diǎn)位置 % 輸出: % newLoc1、newLoc2:精匹配控制點(diǎn)位置 sl
13、ope=(loc2(:,1)-loc1(:,1)./(loc2(:,2)-loc1(:,2); for k=1:3 slope=slope-mean(slope); len=length(slope); t=sort(abs(slope); thresh=t(round(0.5*len); ind=abs(slope)<=thresh; slope=slope(ind); loc1=loc1(ind,:); loc2=loc2(ind,:); end newLoc1=loc1; newLoc2=loc2; function im=picMatched(pic1,newLoc1,pic2,
14、newLoc2)% 功能:獲取拼接之后的圖片 % 輸入: % pic1、pic2:待拼接圖片 % newLoc1、newLoc2:變換控制點(diǎn)矩陣 % 輸出: % im:拼接后的圖片 if length(size(pic1)=2 pic1=cat(3,pic1,pic1,pic1); end if length(size(pic2)=2 pic2=cat(3,pic2,pic2,pic2); end SZ=2000; X1=newLoc1(:,2); Y1=newLoc1(:,1); X2=newLoc2(:,2); Y2=newLoc2(:,1); sel=randperm(length(ne
15、wLoc1),3); x=X2(sel)' y=Y2(sel)' X=X1(sel)' Y=Y1(sel)' U=x;y;ones(1,3); V=X;Y;ones(1,3); T=V/U; cntrX=SZ/2; cntrY=SZ/2; im=zeros(SZ,SZ,3); for i=1:size(pic2,1) for j=1:size(pic2,2) tmp=T*j;i;1; nx=round(tmp(1)+cntrX; ny=round(tmp(2)+cntrY; if nx>=1 && nx<=SZ &&
16、ny>=1 && ny<=SZ im(ny,nx,:)=pic2(i,j,:); end end end im=imresize(im,1,'bicubic'); tpic1=zeros(SZ,SZ,3); tpic1(1+cntrY:size(pic1,1)+cntrY,1+cntrX:size(pic1,2)+cntrX,:)=pic1; re=rgb2gray(uint8(im)-rgb2gray(uint8(tpic1); for k=1:3 ta=im(:,:,k);tb=tpic1(:,:,k); ta(re=0)=tb(re=0); i
17、m(:,:,k)=ta; end clear ta tb re tpic1 im=getPicture(im,SZ); im=uint8(im); if length(size(pic1)=2 im=rgb2gray(im); end function im=getPicture(pic,SZ) % 功能:獲取圖像有用區(qū)域 % 輸入: % pic:拼接圖像 % SZ:預(yù)定圖像尺寸 % 輸出: % im:有用區(qū)域圖像 if length(size(pic)=2 pic=cat(3,pic,pic,pic); end k=1; while k<SZ if any(any(pic(k,:,:) break end k=k+1; end ceil=k; %上邊界 k=SZ; while k>0 if
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 衛(wèi)生管理醫(yī)療質(zhì)量標(biāo)準(zhǔn)試題及答案
- 文化融資模式解析試題及答案
- 2024年專(zhuān)利代理人資格證的評(píng)價(jià)指標(biāo)試題及答案
- 2024年衛(wèi)生管理考試熱點(diǎn)試題及答案
- 母豬護(hù)理的專(zhuān)業(yè)理論考試題及答案
- 兩癌知識(shí)培訓(xùn)試題及答案
- 當(dāng)前激光技術(shù)的發(fā)展與考試趨勢(shì)試題及答案
- 湖北省2025屆高三(4月)調(diào)研模擬考試地理試題及答案
- 鄉(xiāng)村全科執(zhí)業(yè)助理醫(yī)師考試專(zhuān)業(yè)知識(shí)試題及答案
- 衛(wèi)生管理專(zhuān)業(yè)能力考試試題及答案
- 實(shí)相般若波羅蜜經(jīng)
- (更新版)中國(guó)移動(dòng)政企行業(yè)認(rèn)證題庫(kù)大全-下(判斷題匯總)
- 上海交通大學(xué)醫(yī)學(xué)院附屬仁濟(jì)醫(yī)院-日間手術(shù)管理信息化實(shí)踐與發(fā)展
- 2021年湖北理工學(xué)院輔導(dǎo)員招聘考試題庫(kù)及答案解析
- 消防設(shè)備設(shè)施維護(hù)保養(yǎng)臺(tái)賬
- 神奇的植物王國(guó)課件
- 員工崗位技能考核評(píng)定表
- 項(xiàng)目部安全生產(chǎn)事故應(yīng)急預(yù)案
- 普通沖床設(shè)備日常點(diǎn)檢標(biāo)準(zhǔn)作業(yè)指導(dǎo)書(shū)
- DBT29-265-2019 天津市市政基礎(chǔ)設(shè)施工程資料管理規(guī)程
- -城鄉(xiāng)規(guī)劃法-最新課件
評(píng)論
0/150
提交評(píng)論