2013-05-14 2 views
0

matlab에서 이미지의 푸리에 변환의 크기와 위상을 플로팅하고 싶습니다. 이 link 라인을 한 줄씩 읽는 튜토리얼을 구현했지만 크기는 흰색 화면 만 플롯됩니다.이미지의 푸리에 변환이 작동하지 않습니다.

내 코드 :

I=imread('16.jpg'); 
fftA = fft2(double(I)); 
figure, imshow(abs(fftshift(fftA))); 
title('Image FFT2 Magnitude'); 
figure, imshow(angle(fftshift(fftA)),[-pi pi]); 
title('Image FFT2 Phase') 

내 원래 이미지는 다음과 같습니다 enter image description here

어디에 문제가?

답변

2

두 가지가 있습니다. 2 차원 FFT에 대한

  1. 입력 화상 mxnx1 크기에 강도 화상 (또는 그레이 스케일)이어야 크기 mxnx3 RGB 아니다.

  2. 이미지 행렬이 double 인 경우, 그 강도는 [0,1] 범위에있을 것으로 예상됩니다. 1보다 큰 값은 1로 표시됩니다 (그림 색상 표의 가장 높은 색상으로 채워짐). 후자의 해결 이미지 크기를 조정하거나 imagesc 규모 유지하기 위해 axis equal와 함께 사용하려면

    Irgb = imread('16.jpg'); 
    Igray = rgb2gray(Irgb); 
    

    :

    figure; 
    imagesc(abs(fftshift(fftA))); axis equal; axis tight; 
    

그레이 스케일 사용 rgb2gray에 RGB 이미지를 변환하려면
관련 문제