Matlab實(shí)現(xiàn)多種圖像配準(zhǔn)_第1頁(yè)
Matlab實(shí)現(xiàn)多種圖像配準(zhǔn)_第2頁(yè)
Matlab實(shí)現(xiàn)多種圖像配準(zhǔn)_第3頁(yè)
Matlab實(shí)現(xiàn)多種圖像配準(zhǔn)_第4頁(yè)
Matlab實(shí)現(xiàn)多種圖像配準(zhǔn)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Matlab實(shí)現(xiàn)多種圖像配準(zhǔn)本文講述如何利用Matlab Image Processing Toolbox中的圖像配準(zhǔn)工具實(shí)現(xiàn)線性正投影、仿射、投影、多項(xiàng)式、分段線性、局部加權(quán)平均配準(zhǔn)的過程。實(shí)驗(yàn)平臺(tái)X86 PC,Windows XP sp2, Matlab 7.1資源的獲取圖片資源來自/registration/satellite/testimag.html,其中每個(gè)壓縮包里存有兩副圖片,每副圖片以矩陣形式保存。matlab工具的使用方法:查看幫助mage Processing Toolbox User's GuideImage re

2、gistration。涉及配準(zhǔn)方法簡(jiǎn)介該工具箱提供的配準(zhǔn)方法均需手工選擇圖像間的匹配點(diǎn)對(duì)(control points pair),均屬于交互配準(zhǔn)方法。其基本過程為:讀入圖像數(shù)據(jù)>在兩副圖像上選擇足夠匹配點(diǎn)>選擇配準(zhǔn)算法,計(jì)算變換參數(shù)>變換圖像。假設(shè)input image(輸入圖像)為欲進(jìn)行配準(zhǔn)的圖像,base image為配準(zhǔn)是的參考圖像。以下是我參考matlab幫助給出了簡(jiǎn)介。1線性正投影(linear conformal):最簡(jiǎn)單。平面映射成平面。當(dāng)輸入輸入圖像與參考圖像對(duì)比,只是存在全局的平移、旋轉(zhuǎn)、縮放或其三者組合的差別時(shí)(正方形仍對(duì)應(yīng)正方形),選擇此配準(zhǔn)方法。此方

3、法至少需要2對(duì)匹配點(diǎn)。2仿射(affine):將平行線轉(zhuǎn)換成平行線。當(dāng)輸入圖像形狀存在切變現(xiàn)象(正方形對(duì)應(yīng)平行四邊形),選此法。至少需3對(duì)匹配點(diǎn)。3投影(projective):將直線映射成直線。如果輸入圖像呈現(xiàn)傾斜,翹起現(xiàn)象,選此法。至少需4對(duì)匹配點(diǎn)。4多項(xiàng)式(polynomial):將直線映射成曲線。如果輸入圖像出現(xiàn)不規(guī)則曲變,采用此法。Matlab中提供有2、3、4次冪的實(shí)現(xiàn),分別至少需要6,10,10對(duì)匹配點(diǎn)。5分段線性(piecewise linear)如果輸入圖像的各個(gè)局部之間的退化模式明顯不一樣,選此法。至少需要4對(duì)匹配點(diǎn)。6局部加權(quán)平均(local weighted mean)

4、與分段線性一致,但效果較之好。至少需要6對(duì)(推薦12對(duì))匹配點(diǎn)。實(shí)驗(yàn)步驟1讀取圖像數(shù)據(jù)。因?yàn)樵磮D像以矩陣形式存在一個(gè)二進(jìn)制的文件里,用fread可將其讀取到變量矩陣中。將讀取文件編制成一個(gè)子函數(shù)(RTIread.m),源代碼如下:function imMatrix=RTIread(FILENAME,SIZE)%RTIread Read the image matrix from binary "Registration Test Image" file.% imMatrix=RTIread(FILENAME,SIZE) opens the file FILENAME, an

5、d reads the % number of elements specified by SIZE.% FILENAME is a string containing the name of the file to be opened. % Valid entries for SIZE are:% N read N elements into a column vector.% inf read to the end of the file.% M,N read elements to fill an M-by-N matrix, in column order.% N can be inf

6、, but M can't.% % It returns the image matrix.fid=fopen(FILENAME,'r');imMatrix=fread(fid,SIZE,'uint8=>uint8');fclose(fid);%image(imMatrix);這里我們選取了兩張600×600的圖片,文件名為“casitas84”和“casitas86”。運(yùn)行以下代碼讀取圖像矩陣:% 1. Read the images into the MATLAB workspace. base=RTIread('casita

7、s84',600,600);input=RTIread('casitas86',600,600);2選取匹配點(diǎn)(control points)。根據(jù)預(yù)定的配準(zhǔn)方法,選定足夠的匹配點(diǎn)對(duì)。運(yùn)行下列代碼:% 2.Specify control point pairs n the images and save. cpselect(input,base);%please select 15 points for test.出現(xiàn)GUI界面。操作很簡(jiǎn)單,只需注意選點(diǎn)要均勻布開,以增加其代表性。選定完畢,F(xiàn)ile-> Save Points to Workspace將數(shù)據(jù)保存到

8、工作區(qū)中。Workspace立刻多出兩個(gè)N×2的數(shù)組(其中N為選定的匹配點(diǎn)對(duì)數(shù)),分別為input_points和base_points,如:input_points = 119.5185 193.5926 168.9012 242.9753 105.9383 140.5062 459.0247 131.8642 313.3457 257.7901 292.3580 165.1975 276.3086 33.0988 283.7160 380.0123 76.3086 297.2963 135.5679 83.7160 360.2593 313.3457 94.8272 446.67

9、90 70.1358 354.0864 181.2469 361.4938 381.2469 460.2593 252.8519 433.09883利用十字相關(guān)法調(diào)整選定了的匹配點(diǎn)。這步可選。運(yùn)行代碼:% 3.Fine-tune the control points using cross-correlation.input_points_corr = cpcorr(input_points,base_points,input,base); %optimism the pointsinput_points_corr為優(yōu)化后在輸入圖片的對(duì)應(yīng)匹配點(diǎn)。4計(jì)算變換公式的參數(shù)。利用cp2tform,選定

10、變換類型(即配準(zhǔn)方法),計(jì)算變換參數(shù)。以下只需選定一種即可。% 4.Specify the type of transformation to be used and infer its parameters% (1) not Fine-tune pointsTlinear = cp2tform(input_points,base_points,'linear conformal');Taffine = cp2tform(input_points,base_points,'affine');Tprojective = cp2tform(input_points,

11、base_points,'projective');Tpolynomial2 = cp2tform(input_points,base_points,'polynomial',2);Tpolynomial3 = cp2tform(input_points,base_points,'polynomial',3);Tpolynomial4 = cp2tform(input_points,base_points,'polynomial',4);Tpiecewise = cp2tform(input_points,base_points,

12、'piecewise linear');Tlwm = cp2tform(input_points,base_points,'lwm');% (2)Fine-tune pointsfTlinear = cp2tform(input_points_corr,base_points,'linear conformal');fTaffine = cp2tform(input_points_corr,base_points,'affine');fTprojective = cp2tform(input_points_corr,base_po

13、ints,'projective');fTpolynomial2 = cp2tform(input_points_corr,base_points,'polynomial',2);fTpolynomial3 = cp2tform(input_points_corr,base_points,'polynomial',3);fTpolynomial4 = cp2tform(input_points_corr,base_points,'polynomial',4);fTpiecewise = cp2tform(input_points_

14、corr,base_points,'piecewise linear');fTlwm = cp2tform(input_points_corr,base_points,'lwm');諸如Tlinear的變量為一個(gè)稱為TFORM的數(shù)據(jù)結(jié)構(gòu),尚沒做仔細(xì)研究:Tlinear = ndims_in: 2 ndims_out: 2 forward_fcn: fwd_affine inverse_fcn: inv_affine tdata: 1x1 struct5變換圖像。% 5.Transform the unregistered image to bring it in

15、to alignment. title('image registration polynomial method');subplot(2,2,1);imshow(base);title('Base image');subplot(2,2,2);imshow(input);title('Input image');subplot(2,2,3);imshow(imtransform(input,Tpolynomial2);title('registered image');subplot(2,2,4);imshow(imtransform(input,fTpolynomial2);title('registered image(fine-tune points)');結(jié)果如下:總結(jié)1

溫馨提示

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

評(píng)論

0/150

提交評(píng)論