2012-10-18 3 views
4

지금이푸리에와 제로 패딩

A=double(imread('C:\Users\samsung\Documents\Lab Imagenes\CHE.jpg','jpg')); 
B=[1 4 6 4 1; 4 16 24 16 4; 6 24 36 24 6; 4 16 24 16 4; 1 4 6 4 1]; 
F=(1/256).*(B); 
DFT_A=fftshift(fft2(A)); 
imshow(DFT_A); 
DFT_A_F=DFT_A.*F; 
figure 
imshow(DFT_A_F) 

이 때까지하지만 난이 오류

??? Error using ==> times 
Matrix dimensions must agree. 

Error in ==> fourier1 at 10 
DFT_A_F=DFT_A.*F; 
에게있어 부분적인 결과를보고 할 때 나는 마스크와 Discret 푸리에 Trasform를 사용하여 이미지를 필터링하고있어

마스크에 제로 패딩을해야한다는 것을 알고 있지만, 어떻게해야할지 모르겠다. 도움을 청해야한다. 고마워! 당신은 당신이 DFT_A 정의 직후, 'padarray을'이라고 원하는

답변

2

:

padsize= [round(0.5*size(DFT_A,1)-0.5*size(F,1)) round(0.5*size(DFT_A,2)-0.5*size(F,2))]; 
F = padarray(F, padsize); 
DFT_A_F=DFT_A.*F; 
... 

하지만 그냥 (A는 2 차원 행렬이다 주어진 때문에 필요한 경우를 rgb2gray)하지 않을 이유 :

DFT_A_F = conv2(A,B,'same'); 

이 모든 0을 곱할 필요가 없기 때문에 더 빠르며 동일한 결과를 얻게됩니다.

+0

도움 주셔서 감사합니다. 매우 도움이되었습니다. – user1755076