|
|
Partial reconstruction of your image using freqcomp.m Frequency components used 200 |
Partial reconstruction of your image using freqcomp.m Frequency components used 100 |
imfft = fft2(im); |
|
gafilt = fspecial('gaussian', size(im), 6) |
gafiltfft = fft2(gafilt); |
newimgafft = gafiltfft.*imfft; |
Original Image im |
imfft = fft2(im); |
avfilt = averagefilter(size(im),21,21); |
avfiltfft = fft2(avfilt); |
real(ifft2(newimavfft)) |
newimavfft = avfiltfft.*imfft; |
Listing of the code I used to obtain the above images:
im = imread('d:\comp vision\images\travis.jpg'); im = rgb2gray(im); avfilt = averagefilter(480,640,21,21); % average filter gafilt = fspecial('gaussian', [480 640], 6); % gaussian filter imfft = fft2(im); gafiltfft = fft2(gafilt); avfiltfft = fft2(avfilt); newimavfft = avfiltfft.*imfft; newimgafft = gafiltfft.*imfft; imwritesc(im, 'im.png'); imwritesc(gafilt, 'gafilt.png'); imwritesc(avfilt, 'avfilt.png'); imwritesc(fftshift(log(abs(imfft)+eps)), 'imfft.png'); imwritesc(fftshift(log(abs(gafiltfft)+eps)), 'gafiltfft.png'); imwritesc(fftshift(log(abs(avfiltfft)+eps)), 'avfiltfft.png'); imwritesc(fftshift(log(abs(newimavfft)+eps)), 'newimavfft.png'); imwritesc(fftshift(log(abs(newimgafft)+eps)), 'newimgafft.png'); imwritesc(fftshift(real(ifft2(newimavfft))), 'newimav.png'); imwritesc(fftshift(real(ifft2(newimgafft))), 'newimga.png');
im1 |
im2 |
im1 magnitude and im2 phase |
im1 phase and im2 magnitude |
im1 phase only |
im2 phase only |
Listing of the code I used to obtain the above images:
im1 = imread('d:\comp vision\images\travis.jpg'); im2 = imread('d:\comp vision\images\travis1.jpg'); im1 = rgb2gray(im1); % convert to greyscale im2 = rgb2gray(im2); % convert to greyscale im1fft = fft2(im1); im2fft = fft2(im2); im1phase = angle(im1fft); im2phase = angle(im2fft); im1mag = abs(im1fft); im2mag = abs(im2fft); newimfft1 = im1mag.*(cos(im2phase) + i*sin(im2phase)); newimfft2 = im2mag.*(cos(im1phase) + i*sin(im1phase)); imwritesc(real(ifft2(newimfft1)), 'im1mag_im2phase.png'); imwritesc(real(ifft2(newimfft2)), 'im1phase_im2mag.png'); im1phaseonly = im1fft./im1mag; im2phaseonly = im2fft./im2mag; imwritesc(real(ifft2(im1phaseonly)), 'im1phaseonly.png'); imwritesc(real(ifft2(im2phaseonly)), 'im2phaseonly.png'); imwritesc(im1, 'im1.png'); imwritesc(im2, 'im2.png');