Εργαστήριο ADICV. Fourier transform, frequency domain filtering and image restoration. Κώστας Μαριάς 3/4/2017

Σχετικά έγγραφα
Advances in Digital Imaging and Computer Vision

Advances in Digital Imaging and Computer Vision

Advances in Digital Imaging and Computer Vision

Advances in Digital Imaging and Computer Vision

Advances in Digital Imaging and Computer Vision

Εργαστήριο ADICV2. Image filtering. Κώστας Μαριάς

Digital Image Processing

Advances in Digital Imaging and Computer Vision

Εργαστήριο ADICV1. Image Boundary detection and filtering. Κώστας Μαριάς 13/3/2017

Advances in Digital Imaging and Computer Vision

Βελτίωση Ποιότητας Εικόνας: Επεξεργασία στο πεδίο της Συχνότητας

Εργαστήριο ADICV3. Image filtering, Point Processing and Histogram Equalisation. Κώστας Μαριάς 20/3/2017

Εργαστήριο ADICV2 Labs 2-6

Digital Image Processing

References. Chapter 10 The Hough and Distance Transforms

Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας. Εισηγητής Αναστάσιος Κεσίδης

Κεφάλαιο 6: Βελτιστοποίηση εικόνας 6.73

Advances in Digital Imaging and Computer Vision

Advances in Digital Imaging and Computer Vision

1. ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB... 13

Ψηφιακή Επεξεργασία Σημάτων

ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΣΗΜΑΤΟΣ ΑΣΚΗΣΗ 3

3-Μαρτ-2009 ΗΜΥ Γρήγορος Μετασχηματισμός Fourier Εφαρμογές

Ασκήσεις Επεξεργασίας Εικόνας

Βιοϊατρική τεχνολογία

Advances in Digital Imaging and Computer Vision. Image Registration and Transformation

Ακαδηµαϊκό Έτος , Χειµερινό Εξάµηνο ιδάσκων Καθ.: Νίκος Τσαπατσούλης

ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΣΗΜΑΤΩΝ Κυκλική Συνέλιξη. Εµµανουήλ Ζ. Ψαράκης Πολυτεχνική Σχολή Τµήµα Μηχανικών Η/Υ & Πληροφορικής

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ. Ενότητα : ΔΙΑΚΡΙΤΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER

Ψηφιακή Επεξεργασία Εικόνας

4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER

Επεξεργασία Πολυµέσων. Δρ. Μαρία Κοζύρη Π.Μ.Σ. «Εφαρµοσµένη Πληροφορική» Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο Θεσσαλίας

Παρουσίαση του μαθήματος

Ψηφιακή Επεξεργασία Εικόνας

Ανάλυση Ηλεκτρικών Κυκλωμάτων

Σήματα και Συστήματα. Διάλεξη 6: Ανάλυση Σημάτων σε Ανάπτυγμα Σειράς Fourier. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

Digital Image Processing

Μάθημα: Μηχανική Όραση

20-Φεβ-2009 ΗΜΥ Διακριτός Μετασχηματισμός Fourier

Fast Fourier Transform

Παρουσίαση Νο. 5 Βελτίωση εικόνας

Ο μετασχηματισμός Fourier

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

Ιατρικά Ηλεκτρονικά. Χρήσιμοι Σύνδεσμοι. ΙΑΤΡΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ - ΔΙΑΛΕΞΗ 5α. Σημειώσεις μαθήματος: E mail:

Εργαστηριακή Άσκηση 3 Σχεδιασμός ψηφιακών φίλτρων FIR με το MATLAB

Ανάλυση ΓΧΑ Συστημάτων

ΑΡΧΕΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

Ειδικά Θέµατα Υπολογιστικής Όρασης & Γραφικής. Εµµανουήλ Ζ. Ψαράκης & Αθανάσιος Τσακαλίδης Πολυτεχνική Σχολή Τµήµα Μηχανικών Η/Υ & Πληροφορικής

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ. Ενότητα 5: Μετασχηματισμοί Εικόνας.

ΖΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΔΠΜΣ Προηγμένα Συστήματα Παραγωγής, Αυτοματισμού και Ρομποτικής

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 9 Ανάλυση Fourier: Από τη Θεωρία στην Πρακτική Εφαρμογή των Μαθηματικών

Ενότητα 4: Φιλτράρισµα στο Πεδίο Συχνοτήτων (ΙΙ)

Ψηφιακή Επεξεργασία Σήματος

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ Πάτρα 2005 ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ Εργαστήριο Επεξεργασίας Σηµάτων Τηλεπικοινωνιών & ικτύων

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 8 Επεξεργασία Σήματος με την Ανάλυση Fourier. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Μια «ανώδυνη» εισαγωγή στο μάθημα (και στο MATLAB )

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 7 Ακούγοντας Πρώτη Ματιά στην Ανάλυση Fourier. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Kεφάλαιο 5 DFT- FFT ΔΙΑΚΡΙΤΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER DISCRETE FOURIER TRANSFORM 1/ 80. ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΣΗΜΑΤΟΣ DFT-FFT Σ.

ΛΥΣΕΙΣ ΑΣΚΗΣΕΩΝ ΕΞΕΤΑΣΤΙΚΗΣ ΠΕΡΙΟ ΟΥ ΙΟΥΝΙΟΥ 2004., η οποία όµως µπορεί να γραφεί µε την παρακάτω µορφή: 1 e

HMY 429: Εισαγωγή στην Επεξεργασία Ψηφιακών Σημάτων. Διάλεξη 22: Γρήγορος Μετασχηματισμός Fourier Ανάλυση σημάτων/συστημάτων με το ΔΜΦ

Ε.Α.Υ. Υπολογιστική Όραση. Κατάτμηση Εικόνας

Διακριτός Μετασχηματισμός Fourier

Ψηφιακή Επεξεργασία και Ανάλυση Εικόνας Ενότητα 4 η : Βελτίωση Εικόνας. Καθ. Κωνσταντίνος Μπερμπερίδης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ. Ενότητα : ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ Ζ (ΖTransform)

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Ο μετασχηματισμός Fourier

Ραδιομετρική Ενίσχυση - Χωρική Επεξεργασία Δορυφορικών Εικόνων

Digital Image Processing

17-Φεβ-2009 ΗΜΥ Ιδιότητες Συνέλιξης Συσχέτιση

ΑΝΑΛΥΣΗ ΣΗΜΑΤΩΝ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΤΟ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟ FOURIER

Ο Παλμογράφος στη Διδασκαλία της Τριγωνομετρίας. Εφαρμογές της Τριγωνομετρίας σε πραγματικά προβλήματα και ενδιαφέρουσες επεκτάσεις

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ

Ενότητα 3: Μετασχηµατισµοί Έντασης & Χωρικό Φιλτράρισµα

Wavelets α. Τι είναι τα wavelets;

ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

H ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΣΗΜΑΤΟΣ. στις τηλεπικοινωνίες

Μετάδοση Πολυμεσικών Υπηρεσιών Ψηφιακή Τηλεόραση

1. Φίλτρα διέλευσης χαμηλών συχνοτήτων 2. Φίλτρα διέλευσης υψηλών συχνοτήτων 3. Ζωνοπερατά φίλτρα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ. Ενότητα : ΤΑΧΥΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER

ΠΕΡΙΕΧΟΜΕΝΑ 1. ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ 2. ΣΤΟΙΧΕΙΑ ΗΛΕΚΤΡΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ

ΠΛΗ 22: Βασικά Ζητήματα Δίκτυα Η/Υ

Τηλεπισκόπηση - Φωτοερμηνεία

ΜΗΧΑΝΙΚΗ ΟΡΑΣΗ. 2η ΕΡΓΑΣΙΑ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ

Εισαγωγή στα Σήματα. Κυριακίδης Ιωάννης 2011

H ap (z) = z m a 1 az m (1)

Διάλεξη 2. Συστήματα Εξισώσεων Διαφορών ΔιακριτάΣήματαστοΧώροτης Συχνότητας

Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας. Εισηγητής Αναστάσιος Κεσίδης

Ψηφιακή Επεξεργασία Σήματος Coursework

HMY 429: Εισαγωγή στην Επεξεργασία Ψηφιακών. στο χώρο της συχνότητας

Σήματα και Συστήματα. Διάλεξη 2: Στοιχειώδη Σήματα Συνεχούς Χρόνου. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

Kεφάλαιο 5 DFT- FFT ΔΙΑΚΡΙΤΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER DISCRETE FOURIER TRANSFORM ΨΗΦΙΑΚΗ ΕΠΕΞΕΡΓΑΣΙΑ ΣΗΜΑΤΟΣ DFT-FFT. Σ.

DFT ιακριτός µετ/σµός Fourier Discrete Fourier Transform

HMY 429: Εισαγωγή στην Επεξεργασία Ψηφιακών Σημάτων. Διάλεξη 20: Διακριτός Μετασχηματισμός Fourier (Discrete Fourier Transform DFT)

ΚΕΦΑΛΑΙΟ 3 ο ΣΥΝΑΡΤΗΣΕΙΣ, ΤΡΙΓΩΝΟΜΕΤΡΙΑ( FUNCTIONS,TRIGONOMETRY)

Ψηφιακή Επεξεργασία Σημάτων

Το σήμα εξόδου ενός διαμορφωτή συμβατικού ΑΜ είναι:

Advances in Digital Imaging and Computer Vision

Μεταπτυχιακό Πρόγραμμα «Γεωχωρικές Τεχνολογίες» Ψηφιακή Επεξεργασία Εικόνας. Εισηγητής Αναστάσιος Κεσίδης

x 1 [n] = 0, αλλού x[n]e jωn X(e jω ) =

ΗΜΥ Διακριτός Μετασχηματισμός Fourier

Transcript:

Εργαστήριο ADICV Fourier transform, frequency domain filtering and image restoration Κώστας Μαριάς 3/4/2017

Fourier Filtering ADICV Kostas Marias TEI Crete 2017 2

Basic Matlab ΠΑΡΑΔΕΙΓΜΑΤΑ ΦΙΛΤΡΩΝ ΔΙΑΚΡΙΤΟΣ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ FOURIER ΕΠΕΞΕΡΓΑΣΊΑ ΣΤΟ ΠΕΔΙΟ ΣΥΧΝΟΤΗΤΩΝ

Οπτικοποίηση ΔΜF με Matlab 1) Ο ΔΜF είναι πίνακας μιγαδικών οπότε απεικονίζουμε το μέτρο του με την εντολή abs της matlab. 2) Ο συντελεστής DC (άθροισμα όλων) έχει τεράστια τιμή σε σχέση με τις υπόλοιπες του ΔΜF. Συνήθως κάνουμε πρώτα την μετατόπιση που περιγράψαμε πριν. 3) Για να οπτικοποιήσουμε ένα ΔΜF στη Matlab ο ποιο συνηθισμένος τρόπος είναι να πάρουμε πρώτα το λογάριθμο του ΔΜF και στη συνέχεια να γίνει οτπικοποίηση. 4) Επειδή θα έχουμε πολύ υψηλές τιμές θα χρησιμοποιήσουμε την εντολή mat2gray για να τις φέρουμε από 0 έως 1. 5) Στην επόμενη διαφάνεια δίνεται παράδειγμα σε matab

Matlab Παράδειγμα: Οπτικοποίηση ΔΜF με Matlab c=imread('cameraman.tif'); cf1=fft2(c); fft2: Μας δίνει τον ΔΜF ενός πίνακα cf=fftshift(fft2(c)); cfnormal1=mat2gray(log(1+abs(cf1))); cfnormal=mat2gray(log(1+abs(cf))); subplot(1,3,1), imshow(c), title('original Image'); subplot(1,3,2), imshow(cfnormal1), title('dft Image'); subplot(1,3,3), imshow(cfnormal), title('dft Image shifted'); fftshift: Μετασχηματίζει τον ΔΜΦ ώστε ο DC συντελεστής να είναι στο κέντρο της εικόνας 1) Ο ΔΜF είναι πίνακας μιγαδικών οπότε απεικονίζουμε το μέτρο του με την εντολή abs της matlab. 2) Ο συντελεστής DC (άθροισμα όλων) έχει τεράστια τιμή σε σχέση με τις υπόλοιπες του ΔΜF. Συνήθως κάνουμε πρώτα την μετατόπιση που περιγράψαμε πριν. 3) Για να οπτικοποιήσουμε ένα ΔΜF στη Matlab ο ποιο συνηθισμένος τρόπος είναι να πάρουμε πρώτα το λογάριθμο του ΔΜF και στη συνέχεια να γίνει οτπικοποίηση. 4) Επειδή θα έχουμε πολύ υψηλές τιμές θα χρησιμοποιήσουμε την εντολή mat2gray για να τις φέρουμε από 0 έως 1. Kostas Marias Digital Image Processing Lectures 5

ΔΜF: Χαμηλοπερατά Φίλτρα-Ιδεατό Digital Image Processing, Rafael C.Gonzalez & Richard E. Woods, Addison-Wesley, 3rd edition Το ιδεατό χαμηλοπερατό φίλτρο (IDLPF) έχει συνάρτηση μεταφοράς Η (μετασχηματισμό Fourier της μάσκας h) της μορφής: 1, D( u, v) D H( u, v) 0, D( u, v) D 0 0 Η επιλογή της τιμής του D 0 στο ιδεατό χαμηλοπερατό φίλτρο καθορίζει πόση από τη συνολική ισχύ της εικόνας θέλουμε να διατηρήσουμε!! Όπου D(u,v) είναι η απόσταση του σημείου με συχνότητες (u,v) από το σημείο (0,0), και D 0 είναι ένας θετικός αριθμός (συχνά αναφέρεται ως ακτίνα του χαμηλοπερατού φίλτρου)

Matlab ΔΜF: Χαμηλοπερατά Φίλτρα-Ιδεατό Για να φιλτράρουμε στο πεδίο συχνοτήτων πρώτα δημιουργούμε μια σφαίρα στο κέντρο της εικόνας, η οποία ανάλογα με την ακτίνα της μπορεί να κρατήσει συγκεκριμένες συχνότητες: [x,y]=meshgrid(-128:127,-128:127); z=sqrt(x.^2+y.^2); c=(z<15); figure, imshow(c) I=imread('cameraman.tif'); F=fftshift(fft2(I)); Στη συνέχεια διαβάζουμε την εικόνα cameraman.tif στη matlab και υπολογίζουμε τον ΔΜF της εικόνας I με την εντολή fft2 της matlab. Επιπλέον εφαρμόζουμε την εντολή fftshift για να έχουμε στο κέντρο τον DC συντελεστή Στη συνέχεια πολλαπλασιάζουμε τη κυκλική μάσκα c ακτίνας 15 pixel με τον F έτσι ώστε να κρατήσουμε χαμηλές συχνότητες στο κέντρο του F: cf=f.*c; figure, imshow(mat2gray(log(1+abs(cf))));

ΔΜF: Χαμηλοπερατά Φίλτρα-Ιδεατό Matlab Τέλος υπολογίζουμε τον διακριτό, αντίστροφο μετασχηματισμό F της cf, δηλαδή της εικόνας με τις φιλτραρισμένες συχνότητες με την εντολή ifft2 της matlab: IcF=ifft2(cF); Επειδή η εικόνα που προκύπτει έχει max(max(icf))=235.3163 και min(min(icf)) = -233.8695, αλλά και για δώσουμε μια καλύτερη οπτικοποίηση (η αλληλουχία fft2 και ifft2 οδηγεί σε σφάλματα), επιλέγω να πάρω πρώτα τις απόλυτες τιμές της IcF (αν και είμαστε πίσω στο χωρικό πεδίο) και μετά να χρησιμοποιήσω το mat2gray της matlab για να μετασχηματιστούν όλες οι τιμές από 0 εως 1 και στη συνέχεια να οπτικοποιηθούν: figure, imshow(mat2gray(abs(icf))) Με την εντολή subplot δείχνουμε όλα τα βήματα-αποτελέσματα του χαμηλοπερατού φιλτραρίσματος με ΔΜF: subplot(2,2,1);imshow(i,[]), title('original Image'); subplot(2,2,2);imshow(mat2gray(log(1+abs(f)))), title('dft of Image'); subplot(2,2,3);imshow(mat2gray(log(1+abs(cf)))), title('lowpass mask'); subplot(2,2,4); imshow(mat2gray(abs(icf))), title('filtered Image');

ΔΜF: Χαμηλοπερατά Φίλτρα-Ιδεατό Matlab

ΔΜF: Χαμηλοπερατά Φίλτρα Matlab Οι συναρτήσεις της matlab fft2 kai ifft2 δίνουν αριθμητικές προσεγγίσεις και περιχέουν, αναπόφευκτα, σφάλματα. Για αυτό το λόγο μετά από τον αντίστροφο ΔΜF χρησιμοποιούμε το imshow στις απόλυτες τιμές του πίνακα (abs) επιδιώκοντας να στρογγυλέψουμε σφάλματα που προκύπτουν κατά τον μετασχηματισμό και την αντιστροφή του. Στο ιδεατό φίλτρο υπάρχουν σφάλματα (με τη μορφή δαχτυλιδιού) από το κέντρο της φιλτραρισμένης εικόνας και προς τα έξω. Αυτά οφείλονται στην απόκριση του ιδεατού φίλτρου λόγω των απότομων ακμών του: [x,y]=meshgrid(-128:127,-128:127); z=sqrt(x.^2+y.^2); c=(z<15); cf=fftshift(fft2(c)); imshow(mat2gray(log(1+abs(cf)))) b=1./(1+(z./15).^2); figure, imshow(b) cf=fftshift(fft2(b)); imshow(mat2gray(log(1+abs(cf)))) Το πρόβλημα λύνεται με τη χρήση φίλτρων Butterworth που έχουν ομαλή μετάβαση εντάσεων στην περιφέρεια του κύκλου.

ΔΜF: Χαμηλοπερατά φίλτρα Butterworth Matlab Digital Image Processing, Rafael C.Gonzalez & Richard E. Woods, Addison-Wesley, 3rd edition Τα ιδεατά χαμηλοπερατά φίλτρα δεν είναι υλοποιήσιμα σε hardware. Επιπλέον δημιουργούν εικόνες με δακτυλίδια (ringing effect) εξαιτίας της απότομης μεταβολής μεταβολής της Hideal από την τιμή 1 στη τιμή 0. Τα χαμηλοπερατά φίλτρα Butterworth (BLPF) έχουν συνάρτηση μεταφοράς Η της μορφής (n είναι η τάξη του φίλτρου): 1 H ( u, v) 2n 1 D( u, v) D0

ΔΜF: Χαμηλοπερατά φίλτρα Butterworth n=1 [x,y]=meshgrid(-128:127,-128:127); c1=1./(1+((x.^2+y.^2)/15^2)); c2=1./(1+((x.^2+y.^2)/35^2)); I=imread('cameraman.tif'); F=fftshift(fft2(I)); cf1=f.*c1; cf2=f.*c2; IcF1=ifft2(cF1); IcF2=ifft2(cF2); Matlab subplot(2,4,1);imshow(i,[]), title('original Image'); subplot(2,4,2);imshow(mat2gray(log(1+abs(f)))), title('dft of Image'); subplot(2,4,3);imshow(mat2gray(log(1+abs(cf1)))), title('lowpass mask cutoff 15'); subplot(2,4,4);imshow(mat2gray(log(1+abs(cf2)))), title('lowpass mask cutoff 35'); subplot(2,4,6);imshow(mat2gray(abs(icf1))), title('filtered with mask LP15'); subplot(2,4,7);imshow(mat2gray(abs(icf2))), title('filtered with mask LP 35');

Άσκηση ΔΜF: Χαμηλοπερατά φίλτρα Butterworth n=1 %Διαβάστε την εικόνα A=imread('kids.tif'); %Εξισορροπείστε το ιστόγραμμα της εικόνας Α δημιουργώντας μια εικόνα Β I=histeq(A); [m n]=size(i) %Φτιάξτε 3 φίλτρα Butterworth με cutoff 45, το 1 ο με n=1, το 2 ο με n=2, το 3 ο με n=3 1 [x,y]=meshgrid(-n/2:n/2-1,-m/2:m/2-1); ( u, v) D( u, v) c1=1./(1+((x.^2+y.^2)/45^2)); 1 D0 c2=1./(1+((x.^2+y.^2).^2/45^4)); c3=1./(1+((x.^2+y.^2).^3/45^6)); %Φιλτράρετε με αυτά τα 3 φίλτρα στο πεδίο συχνοτήτων της Ι F=fftshift(fft2(I)); cf1=f.*c1; cf2=f.*c2; cf3=f.*c3; IcF1=ifft2(cF1); IcF2=ifft2(cF2); IcF3=ifft2(cF3); Matlab H 2n

Άσκηση ΔΜF: Χαμηλοπερατά φίλτρα Butterworth n=1 %Οπτικοποίηση Αποτελεσμάτων subplot(2,4,1);imshow(a), title('original Image'); subplot(2,4,2); imshow(i); title('hist Equalised Image'); %subplot(2,4,3);imshow(mat2gray(log(1+abs(f)))), title('dft of HE Image'); subplot(2,4,3);imshow(mat2gray(log(1+abs(cf1)))), title('lowpass mask cutoff n=1'); subplot(2,4,4);imshow(mat2gray(log(1+abs(cf2)))), title('lowpass mask cutoff n=2'); subplot(2,4,5);imshow(mat2gray(log(1+abs(cf3)))), title('lowpass mask cutoff n=3'); subplot(2,4,6);imshow(mat2gray(abs(icf1))), title('filtered with mask n=1'); subplot(2,4,7);imshow(mat2gray(abs(icf2))), title('filtered with mask n=2'); subplot(2,4,8);imshow(mat2gray(abs(icf2))), title('filtered with mask n=3'); ΠΡΑΤΗΡΗΣΕΙΣ????

Άσκηση ΔΜF: Χαμηλοπερατά φίλτρα Butterworth n=1 Παρατηρείστε μεταβολές στα ιστογράμματα I1=uint8(255*mat2gray(abs(IcF1))); figure, imhist(i1) I2=uint8(255*mat2gray(abs(IcF2))); figure, imhist(i2) I3=uint8(255*mat2gray(abs(IcF3))); figure, imhist(i2)

Fourier Image Restoration ADICV Kostas Marias TEI Crete 2017 17

Basic Matlab Σκοπός Εργαστηρίου Αποκατάσταση εικόνας Αφαιρώντας Περιοδικό Θόρυβο στο πεδίο συχνοτήτων

Αφαιρώντας Περιοδικό Θόρυβο στο πεδίο συχνοτήτων %Μπορούμε εύκολα να δημιουργήσουμε περιοδικό θόρυβο από την επικάλυψη %μιας εικόνας με μια τριγωνομετρική συνάρτηση: cm=imread('cameraman.tif'); %Η δεύτερη γραμμή απλά δημιουργεί ένα ημιτονοειδές σήμα και ρυθμίζει την τιμή %του να είναι στο εύρος 0-2 [x,y]=meshgrid(1:256,1:256); s=1+sin(x+y/1.5); figure, surf(s), shading interp, colormap bone %Με την επόμενη γραμμή προσθέτουμε στην εικόνα το ημιτονικό σήμα και %διαιρούμε με 4 ώστε να έχουμε πινακα double με εύρος 0.0-1.0 cp=(double(cm)/128+s)/4; cpf=fftshift(fft2(cp)); subplot(1,3,1), imshow(cm) subplot(1,3,2), imshow(cp) subplot(1,3,3), imshow(mat2gray(log(1+abs(cpf)))) An Introduction to Digital Image Processing with Matlab, Alasdair McAndrew

Αφαιρώντας Περιοδικό Θόρυβο στο πεδίο συχνοτήτων Η αρχική εικόνα (αριστερά), η εικόνα με περιοδικό θόρυβο και ο αντίστοιχος ΔΜF (δεξιά) Οι επιπλέον δύο αιχμές μακριά από το κέντρο αντιστοιχεί στο θόρυβο που μόλις προσθέσαμε. Μικρές περίοδοι ημιτόνων αντιστοιχούν σε υψηλής συχνότητας παρεμβολές (μεγάλη αλλαγή σε μια μικρή απόσταση), και είναι ως εκ τούτου πιο μακριά από το κέντρο του μετατοπίστηκε μετασχηματισμό. figure, imshow(mat2gray(log(1+abs(cpf)))) Θα αφαιρέσουμε τώρα αυτές τις επιπλέον αιχμές, και μετά θα αντιστρέψουμε στο χωρικό πεδίο. Αυτό γίνεται διαδραστικά γράφοντας στη matlab: impixelinfo; Πηγαίνουμε τον κέρσορα πάνω στις αιχμές κάνουμε δεξί κλίκ και παίρνουμε τις συντεταγμένες: (156,170) και (102,88) και οι δύο έχουν απόσταση ~ 49 από το κέντρο. [m n]=size(cp); [x,y]=meshgrid(-n/2:n/2-1,-m/2:m/2-1); z=sqrt(x.^2+y.^2); z(170,156) ans = 49.0918 Με βάση αυτό φτιάχνουμε (επόμενη διαφάνεια) το Band reject filter. An Introduction to Digital Image Processing with Matlab, Alasdair McAndrew

Αφαιρώντας Περιοδικό Θόρυβο στο πεδίο συχνοτήτων %Band reject filtering. Δημιουργούμε ένα φίλτρο που %αποτελείται από αυτά με ένα δαχτυλίδι από μηδενικά %που βρίσκονται σε μια ακτίνα 49 από το κέντρο: br=(z < 47 z > 51); figure,imshow(br) %όπου το z είναι η μήτρα που αποτελείται από %αποστάσεις από το κέντρο. Αυτό το συγκεκριμένο %δαχτυλίδι θα έχει ένα πάχος αρκετά μεγάλο για να %καλύψει τις αιχμές. Στη συνέχεια, όπως και πριν, το %πολλαπλασιάζουμε με τον ΔΜF: cpfbr=cpf.*br; figure, imshow(mat2gray(log(1+abs(cpfbr)))) An Introduction to Digital Image Processing with Matlab, Alasdair McAndrew

Αφαιρώντας Περιοδικό Θόρυβο στο πεδίο συχνοτήτων %Οπτικοποίηση τελικών αποτελεσμάτων cpfbr=cpf.*br; IF=ifft2(cpfbr); subplot(1,4,1), imshow(cm), title('original') subplot(1,4,2), imshow(cp), title('original with periodic noise') subplot(1,4,3), imshow(mat2gray(log(1+abs(cpf)))), title('fourier Filter') subplot(1,4,4), imshow(mat2gray(abs(if))), title('filtered Image')

Αφαιρώντας Περιοδικό Θόρυβο στο πεδίο συχνοτήτων cm=imread('cameraman.tif'); [x,y]=meshgrid(1:256,1:256); s=1+sin(4*x+y/3); cp=(double(cm)/128+s)/4; cpf=fftshift(fft2(cp)); [m n]=size(cp); [x,y]=meshgrid(-n/2:n/2-1,-m/2:m/2-1); z=sqrt(x.^2+y.^2); br=(z < 80); figure,imshow(br) cpfbr=cpf.*br; cpfbr=cpf.*br; IF=ifft2(cpfbr); %subplot(1,4,1), imshow(cm), title('original') subplot(1,4,1), imshow(cp,[]), title('original with periodic noise') subplot(1,4,2), imshow(mat2gray(log(1+abs(cpf)))), title('fourier Filter') subplot(1,4,3), imshow(mat2gray(log(1+abs(cpfbr)))), title('fourier cut') subplot(1,4,4), imshow(mat2gray(abs(if))), title('filtered Image')

Σκοπός εργαστηρίου Με βάση τον κώδικα που αναλύθηκε (δίνεται στο camerarestore.m) και τις εικόνες text.bmp και moonlanding.png: Να αποκαταστήσετε την εικόνα text.bmp ώστε να φαίνονται καλύτερα τα γράμματα. Να αποκαταστήσετε την εικόνα text.bmp ώστε να φαίνεται καλύτερα το περιεχόμενο της εικόνας. Χρησιμοποιήστε επιπλέον Butterworth φίλτρα.

Restore εικόνα text.bmp cp=imread('text.bmp'); cpf=fftshift(fft2(cp(:,:,1))); [m n]=size(cp(:,:,1)); [x,y]=meshgrid(-n/2:n/2-1,-m/2:m/2-1); z=sqrt(x.^2+y.^2); br=(z > 150); figure,imshow(br) cpfbr=cpf.*br; cpfbr=cpf.*br; IF=ifft2(cpfbr); subplot(1,4,1), imshow(cp,[]), title('original with periodic noise') subplot(1,4,2), imshow(mat2gray(log(1+abs(cpf)))), title('fourier Filter') subplot(1,4,3), imshow(mat2gray(log(1+abs(cpfbr)))), title('fourier cut') subplot(1,4,4), imshow(mat2gray(abs(if))), title('filtered Image') figure, imshow(histeq(mat2gray(abs(if)))), title('filtered Image')

Restore moonlanding.png cp=imread('moonlanding.png');cpf=fftshift(fft2(cp)); [m n]=size(cp); [x,y]=meshgrid(-n/2:n/2-1,-m/2:m/2-1); z=sqrt(x.^2+y.^2); br=(z <130); figure,imshow(br) cpfbr=cpf.*br; cpfbr=cpf.*br; IF=ifft2(cpfbr); subplot(1,4,1), imshow(cp,[]), title('original with periodic noise') subplot(1,4,2), imshow(mat2gray(log(1+abs(cpf)))), title('fourier Filter') subplot(1,4,3), imshow(mat2gray(log(1+abs(cpfbr)))), title('fourier cut') subplot(1,4,4), imshow(mat2gray(abs(if))), title('filtered Image') %z(363,257)=138

Restore moonlanding.png cp=imread('moonlanding.png');cpf=fftshift(fft2(cp)); [m n]=size(cp); [x,y]=meshgrid(-n/2:n/2-1,-m/2:m/2-1); c3=1./(1+((x.^2+y.^2).^3/50^6)); br=c3; figure,imshow(br) cpfbr=cpf.*br; cpfbr=cpf.*br; IF=ifft2(cpfbr); subplot(1,4,1), imshow(cp,[]), title('original with periodic noise') subplot(1,4,2), imshow(mat2gray(log(1+abs(cpf)))), title('fourier Filter') subplot(1,4,3), imshow(mat2gray(log(1+abs(cpfbr)))), title('fourier cut') subplot(1,4,4), imshow(mat2gray(abs(if))), title('filtered Image') %z(363,257)=138

Restore moonlanding.png cp=imread('moonlanding.png');cpf=fftshift(fft2(cp)); [m n]=size(cp); [x,y]=meshgrid(-n/2:n/2-1,-m/2:m/2-1); z=sqrt(x.^2+y.^2); br=(z <40 z>300); figure,imshow(br) cpfbr=cpf.*br; cpfbr=cpf.*br; IF=ifft2(cpfbr); subplot(1,4,1), imshow(cp,[]), title('original with periodic noise') subplot(1,4,2), imshow(mat2gray(log(1+abs(cpf)))), title('fourier Filter') subplot(1,4,3), imshow(mat2gray(log(1+abs(cpfbr)))), title('fourier cut') subplot(1,4,4), imshow(mat2gray(abs(if))), title('filtered Image') %z(363,257)=138

Thank you for your attention!