2017-03-29 16 views
1

이미지 표현에서 가장 큰 푸리에 변환을 지정하고 유지할 수있는 짧은 MATLAB 프로그램을 작성하고 싶습니다. .이미지에서 가장 큰 푸리에 변환의 비율을 지정하고 유지하는 방법

I= image123; 
F = fft2(I); 
F = fftshift(F); 
F = abs(F); % Get the magnitude 
F = log(F + 1); 
F = mat2gray(F); 
figure, imshow(F,[]) 

내가 1의 제 값을 늘리면 'F = 로그 (F + 1)'이이 크기를 증가 : 여기

지금까지 'image123'는 256 * 256 UINT8입니다 내 코드입니다 푸리에 변환?

+0

귀하의 제목을 제로로 지정된 임계 값 아래의 모든 값을 설정 한 다음이 수정 푸리에에서 이미지를 만들 수 ifft2를 사용하는 바이너리 마스크를 사용하는 것이 좋습니다 아무튼 당신의 코드와 전혀 일치하지 않습니다. FFT를 시각화하려고하거나 실제로 특정 값보다 작은 FFT의 모든 값을 0으로 설정하고 그로부터 이미지를 재구성하려고합니까? – Suever

+0

@Suever yes 값보다 작은 FFT의 모든 값을 0으로 설정 한 다음 이미지를 다시 구성하려고합니다. – user3497570

답변

3

당신은 데이터

% Load in some sample data 
tmp = load('mri'); 
I = tmp.D(:,:,12); 

% Take the 2D Fourier Transform 
F = fft2(I); 

% Set this to whatever you want 
threshold = 2000; 

% Force all values less than this cutoff to be zero 
F(abs(F) < threshold) = 0; 

% Take the inverse Fourier transform to get your image back 
I2 = ifft2(F); 

% Plot them 
figure; 
subplot(1,2,1);  
imshow(I, []); 
title('Original') 

subplot(1,2,2); 
imshow(I2, []); 
title('Filtered') 

enter image description here

+0

'D'를 어떻게 설정해야합니까? @Suever – user3497570

+0

@ user3497570 D가 없습니다. 이미 이미지가 있습니다. – Suever

+0

줄을 이해할 수 없습니다. I = tmp.D (:, :, 12); D (:, :, 12)는 무엇을 의미합니까? – user3497570