[問題] 求兩張影像的位移(subpixelshift)已回收

看板MATLAB作者 (日野)時間15年前 (2010/04/28 23:54), 編輯推噓1(106)
留言7則, 1人參與, 最新討論串1/2 (看更多)
內容有點長,請見諒! 大家好,我目前有一個問題卡住,有上網找過但還是找不到答案, 所以想請上的板上的人可以給點想法,謝謝。 這是有關於位移估測(subpixel shift estimation)。 題目: 有一張高解析度影像(HR)(512X512),對這張影像做downsample image, 每隔8點取1個點,故此影像為64X64大小,即稱為低解析度影像(LR)。 取得LR影像如下: 在高解析度影像(HR)上,以(1,1)為起始點做downsample, 令為第1張影像g1(x,y);而第2張影像也是在HR上以(2,3)為起點做 downsample,為g2(x,y)。 而第1張和第2張之間的關係是有位移值(1,2)。 數學關係式:g2(x,y)=g1(x-a,y-b) 作法: 因為用到correlation ,但是我是在頻率域上做,在轉回空間域。 1.將g1和g2做傅立葉轉換,G1取供軛為G1c,與G2相乘為G12=G1c*G2。 2.Q12(是64X64大小)將其貼到(512X512)大小的零矩陣。 3.經過低通濾波器 4.反傅立葉轉換 5.取得最大值(peak)位置,即為subpixel shift (PS)作法是按照架構圖上做的。 結果: 因為我找到peak位置和我所設定的位移值結果不相同... [程式碼]: %1.------讀取影像--------- a=im2double(imread(路徑)); %2.------downsamplimag---- [Nx,Ny]=size(a); g0=zeros(Nx/8); g1=zeros(Nx/8); g0=a(1:8:end,1:8:end); g1=a(2:8:end,3:8:end); % 3.------FFT--------- G0=fftshift(fft2(g0)); G1=fftshift(fft2(g1)); % 4.------Correlation--- G0c=conj(G0); Q12=G0c.*G1; % 5.------upsampled(zero padding)---- [X Y]=size(Q12);N=8; z0=zeros(N*X,N*Y); [u,v]=size(z0); z0((u/2-X/2+1):(u/2+X/2),(v/2-Y/2+1):(v/2+Y/2))=Q12; %擺在中間 Q12u=z0; % 6.====== Lowpass Filter ====== [NX,NY]=size(Q12u); WP=fftshift(lpfilter('gaussian',NX,NY,30)); WP=(WP.*conj(WP)); Q12ui=Q12u.*WP; % 7.====== iFFT ====== q12=real(ifft2(Q12ui)); % 8.====== 找峰值(peak) ====== M=max(q12(:)); [r,c]=find(q12==M) ----------------------------------------- 因為向板上的人想請求一些協助所以PO文,如果真的不行在這板上PO這樣的問題, 我在刪除...... 謝謝大大。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.134.30.110

04/30 01:50, , 1F
請問這段有沒有打錯 g1=a(2:8:end,3:8:end);
04/30 01:50, 1F

04/30 02:15, , 2F
WP=fftshift(lpfilter('gaussian',NX,NY,30)); 這段我不太懂
04/30 02:15, 2F

04/30 02:16, , 3F
WP=fftshift(fspecial('gaussian',NX,30)); 我用help改成這個
04/30 02:16, 3F

04/30 02:37, , 4F
1樓我看錯了 不過這裡讓我覺得好怪 g2(x,y)=g1(x-a,y-b)
04/30 02:37, 4F

04/30 02:39, , 5F
g1有g1的值 g2有g2的值 會相等嗎?? 這裡我想不透 >"<
04/30 02:39, 5F

04/30 02:40, , 6F
所以g2(3,3)會等於g1(2,1)的值嗎@o@a
04/30 02:40, 6F

04/30 03:27, , 7F
請問一下你算出來是 r=1 c=1 嗎
04/30 03:27, 7F
文章代碼(AID): #1Bs5f67C (MATLAB)
文章代碼(AID): #1Bs5f67C (MATLAB)