बहुत देर हो चुकी इस पोस्ट के लिए एक और उत्तर डाल करने के लिए
@ zhilevan, लेकिन ... वैसे भी, आप mtrw के जवाब का उपयोग करके कोड मैं लिखा है का उपयोग कर सकते हैं:
image = rgb2gray(imread('pillsetc.png'));
subplot(131),imshow(image),title('original image');
set(gcf, 'Position', get(0, 'ScreenSize')); % maximize the figure window
%:::::::::::::::::::::
F = fft2(double(image));
F_Mag = abs(F); % has the same magnitude as image, 0 phase
F_Phase = exp(1i*angle(F)); % has magnitude 1, same phase as image
% OR: F_Phase = cos(angle(F)) + 1i*(sin(angle(F)));
%:::::::::::::::::::::
% reconstruction
I_Mag = log(abs(ifft2(F_Mag*exp(i*0)))+1);
I_Phase = ifft2(F_Phase);
%:::::::::::::::::::::
% Calculate limits for plotting
% To display the images properly using imshow, the color range
% of the plot must the minimum and maximum values in the data.
I_Mag_min = min(min(abs(I_Mag)));
I_Mag_max = max(max(abs(I_Mag)));
I_Phase_min = min(min(abs(I_Phase)));
I_Phase_max = max(max(abs(I_Phase)));
%:::::::::::::::::::::
% Display reconstructed images
% because the magnitude and phase were switched, the image will be complex.
% This means that the magnitude of the image must be taken in order to
% produce a viewable 2-D image.
subplot(132),imshow(abs(I_Mag),[I_Mag_min I_Mag_max]), colormap gray
title('reconstructed image only by Magnitude');
subplot(133),imshow(abs(I_Phase),[I_Phase_min I_Phase_max]), colormap gray
title('reconstructed image only by Phase');
मैं डॉन इस ffti() फ़ंक्शन को आप नहीं देखते हैं, क्या आपका मतलब ifft2() शायद है? यदि नहीं, तो क्या आपके पास इसके लिए प्रलेखन का लिंक है? इसके अलावा, मुझे यह तर्क() फ़ंक्शन नहीं दिख रहा है। – Jordan
क्षमा करें, मैं 'arg' के लिए ऑक्टेव सिंटैक्स का उपयोग कर रहा था (मैटलैब के' कोण 'के बराबर) और' ifft2' के लिए मेक-इन-माय-हेड सिंटैक्स। – mtrw
+1, 'F_Phase = exp (j * कोण (एफ)); 'भी! –