initial commit
This commit is contained in:
51
Assignment4_211/assignment4_3.m
Normal file
51
Assignment4_211/assignment4_3.m
Normal file
@@ -0,0 +1,51 @@
|
||||
clear; close all; clc;
|
||||
|
||||
img = imread('pavian.png'); % Choose any picture you like here
|
||||
img = rgb2gray(img);
|
||||
|
||||
%% Display image
|
||||
figure; subplot(131);
|
||||
imshow(img);
|
||||
title('Ausgangsbild');
|
||||
|
||||
%% FFT
|
||||
fft2d = fft2(img);
|
||||
|
||||
% Display the FFT image.
|
||||
subplot(132);
|
||||
imshow(log(fftshift(abs(fft2d))), []);
|
||||
title('2D-FFT');
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%
|
||||
|
||||
% Approach: We want to remove the low frequencies (high pass filter) to
|
||||
% keep the areas of the image where the lightness changes relative to
|
||||
% nearby pixels
|
||||
|
||||
% Shift FFT so low frequencies are in the center
|
||||
F = fftshift(fft2d);
|
||||
|
||||
% Get image size
|
||||
[M, N] = size(F);
|
||||
|
||||
% Radius of how much to remove
|
||||
r = 25;
|
||||
|
||||
% We cut out the center of the fft low frequencies
|
||||
H = ones(M, N);
|
||||
H(M/2-r:M/2+r, N/2-r:N/2+r) = 0;
|
||||
|
||||
% Apply filter
|
||||
F_filtered = F .* H;
|
||||
|
||||
% Shift back
|
||||
fft2d = ifftshift(F_filtered);
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
%% IFFT to obtain filtered image
|
||||
img_filtered = ifft2(fft2d);
|
||||
subplot(133);
|
||||
imshow(real(img_filtered), []);
|
||||
title('Gefiltertes Ausgangssignal');
|
||||
Reference in New Issue
Block a user