Herunterladen Diese Seite drucken

THORLABS EDU-FOP1 Handbuch Seite 115

Fourier-optik kit

Werbung

Fourier Optik Kit
Kapitel 10: Matlab Code
Kapitel 10 Matlab Code
Dies ist der Matlab Code, der zur Berechnung der Bilder in Kapitel 4.1.8 benutzt wurde.
Für ein gegebenes Bild wird zunächst die Fourier-Transformierte berechnet. Um den
Beitrag von Phase und Amplitude zum Bild zu demonstrieren, wird (a) nur die Amplitude
und (b) die Phase mit einer zufälligen Amplitude zurücktransformiert und geplottet. Wie in
Kapitel 4.1.8 gezeigt wird, trägt die Phase wesentlich zur Bildinformation bei.
clear all;
close all;
% Load image
imdata = imread('Tiger.jpg');
figure(); imshow(imdata); title('Original')
% Transform image from color to greyscale
imdata = rgb2gray(imdata);
% Fourier transform Image and shift pattern so origin is in the center
F = fft2(imdata);
F_shifted = fftshift(F);
% Extract phase and amplitude, F = Amplitude.*exp(1i*Phase)
Amplitude = abs(F_shifted);
Phase = angle(F_shifted);
figure(); imshow(log(Amplitude),[]);
title('Fourier Trafo:
log(Amplitude)');
figure(); imshow(Phase,[]);
title('Fourier Trafo:
Phase');
% Transform back: only amplitude, no phase
ONLY_AMPL = Amplitude;
Manual_F_backshift = ifftshift(ONLY_AMPL);
Manual_F_back = ifft2(Manual_F_backshift);
figure(); imshow(log(Manual_F_back),[]);
title('Only Amplitude transformed
back,
log-Plot')
% Transform back: amplitude is random, include phase
Dimension = size(F);
Noise = rand(Dimension(1),Dimension(2));
figure(); imshow(Noise,[]); title('Noise')
PHASEwithNOISE = Noise.*exp(1i.*Phase);
PHASEwithNOISE_backshift = ifftshift(PHASEwithNOISE);
PHASEwithNOISE_back = ifft2(PHASEwithNOISE_backshift);
figure(); imshow(PHASEwithNOISE_back,[]);
title('Random Amplitude with Phase
transformed
back')
MTN012690-D03
Seite
112

Werbung

loading

Diese Anleitung auch für:

Edu-fop1/m