You are on page 1of 207

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ

Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά


Τεχνολογικού Τομέα

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

Ιωάννης Έλληνας
Τμήμα Η/ΥΣ

Ενότητα 1 : Εισαγωγικές έννοιες

Ιωάννης Έλληνας
Τμήμα Η/ΥΣ
Σκοποί ενότητας
• Η ενότητα αυτή παρουσιάζει τις εισαγωγικές
έννοιες στην επεξεργασία εικόνας, όπως την
παράσταση των ψηφιακών εικόνων, τα
χρωματικά συστήματα και τις εντολές στο
Matlab για τον χειρισμό των εικόνων.

Περιεχόμενα ενότητας
• Τι είναι η ψηφιακή εικόνα
• Τυπικό σύστημα παραγωγής ψηφιακής
εικόνας
• Εισαγωγικές έννοιες
• Χρωματικά συστήματα
• Οι εικόνες στο Matlab
• Το ιστόγραμμα

5
Τι είναι η ψηφιακή εικόνα
Το διακεκριμένο σήμα Σχήμα 1.1 (α) color image (β) gray
Η μετάβαση από τον αναλογικό στο scale (γ) binary image
ψηφιακό κόσμο συνεπάγεται τη
μετατροπή των αναλογικών σημάτων σε
ψηφιακά. Έτσι, το αναλογικό σήμα μιας
εικόνας μεταφέρεται στον ψηφιακό
κόσμο με τη μορφή διακεκριμένου
σήματος, που έχει τη μορφή ψηφιακών
πινάκων.
Μια ψηφιακή εικόνα μπορεί να είναι:
- δυαδική (binary image).
μονοχρωματική με αποχρώσεις του
γκρι (gray level ή gray scale image).
- έγχρωμη (color image).

Τυπικό σύστημα παραγωγής


ψηφιακής εικόνας
Το αισθητήριο μετατρέπει Σχήμα 1.2 Μπλοκ διάγραμμα σύλληψης
το φως σε ηλεκτρικό ρεύμα εικόνας και μορφή ψηφιακής εικόνας.
στους άξονες (x,y), το οποίο
δειγματοληπτείται,
κβαντίζεται και
ψηφιοποιείται μέσω ενός
μετατροπέα A/D. Η
ψηφιακή εικόνα (gray
scale), η οποία παράγεται,
συμβολίζεται με ένα
δισδιάστατο πίνακα Μ × Ν
pixels.

7
Εισαγωγικές έννοιες (1)
• Μια ψηφιακή εικόνα αποχρώσεων του γκρι, διαστάσεων Μ x Ν , παριστάνεται
από έναν δισδιάστατο πίνακα ακεραίων αριθμών:
I(i,j) με i = 1…Μ και j = 1…Ν (1.1)
• όπου 0 ≤ I(i,j) ≤ L – 1 . Το L ισούται συνήθως με μια δύναμη του 2, δηλαδή L = 2k ,
με συνηθέστερη τιμή το k = 8 , που αντιστοιχεί σε 256 αποχρώσεις του γκρι. Η
τιμή I(i,j) αντιπροσωπεύει τη φωτεινότητα του εικονοστοιχείου (pixel) (i,j).
• Η απλούστερη μορφή μιας εικόνας είναι η δυαδική μορφή. Μια δυαδική εικόνα
έχει μόνο δύο στάθμες φωτεινότητας, που συνήθως είναι το μαύρο και το άσπρο
(L=2 και k=1). Το μαύρο αντιστοιχεί στην τιμή 0 και το άσπρο στην τιμή 1. Μια
δυαδική εικόνα καταλαμβάνει μικρότερη μνήμη και η επεξεργασία της απαιτεί
μικρότερο υπολογιστικό κόστος. Σε δυαδική μορφή μπορούν να απεικονισθούν
σημαντικές πληροφορίες όπως είναι το εμβαδόν και η θέση των αντικειμένων, η
μορφή αντικειμένων κ.α.

Εισαγωγικές έννοιες (2)


• Σημειώνεται ότι πάρα πολλές εφαρμογές της ΨΕΕ, όπως η οπτική αναγνώριση
χαρακτήρων (OCR: Optical Character Recognition), η αναγνώριση υπογραφής
(signature recognition), η αναγνώριση αποτυπωμάτων (fingerprint recognition),
γίνονται συνήθως με τη χρήση των δυαδικών εικόνων.
• Οι έγχρωμες ψηφιακές εικόνες αποτελούν το μέσο για την απεικόνιση του
πραγματικού κόσμου. Μια έγχρωμη ψηφιακή εικόνα αποτελείται από τρεις gray
scale εικόνες. Δηλαδή το χρώμα του κάθε εικονοστοιχείου έχει τρεις συνιστώσες
που αντιστοιχούν στις αποχρώσεις των αντίστοιχων εικονοστοιχείων των τριών
εικόνων. Μια ψηφιακή έγχρωμη εικόνα διαστάσεων Μ × Ν μπορεί να
παρασταθεί ως:
Ic(i,j) με i = 1…Μ και j = 1…Ν (1.2)
όπου 0 ≤ Ic(i,j) ≤ L – 1 , για κάθε c = 1, 2, 3. Έτσι το χρώμα του κάθε pixel (i,j)
προκύπτει από το συνδυασμό τριών χρωματικών συνιστωσών:
Color(i,j) = [ I1(i,j) , I2(i,j) , I3(i,j) ] (1.3)

9
Εισαγωγικές έννοιες (3)
Το χρωματικό σύστημα RGB Σχήμα 1.3 Η αρχική έγχρωμη (RGB)
εικόνα και οι τρεις συνιστώσες της
red, green, blue.
• Για παράδειγμα, στο χρωματικό
σύστημα RGB, το κάθε χρώμα
συντίθεται από τα χρώματα
κόκκινο (Red), πράσινο (Green)
και μπλε (Blue). Στο Σχήμα 1.3
παρουσιάζεται μια RGB εικόνα
και η διάσπασή της στα τρία
επιμέρους χρώματα.

10

Εισαγωγικές έννοιες (4)

• Το k αποδίδει το πλήθος των αποχρώσεων και καλείται βάθος


χρώματος (color depth). Μεγαλύτερο βάθος σημαίνει
περισσότερες διαθέσιμες αποχρώσεις. Ο αριθμός των bits
μιας εικόνας είναι b=M x N x k. Προφανώς μια έγχρωμη
εικόνα απαιτεί τριπλάσιο αριθμό bits από μια gray scale
εικόνα.

11
Εισαγωγικές έννοιες (5)
• Η ευκρίνεια μιας εικόνας καθορίζει το Σχήμα 1.4 Μεταβολή της
πόσο καλά μπορούμε να βλέπουμε τις ευκρίνειας κρατώντας σταθερό
λεπτομέρειές της. Ισούται με το πλήθος το k και μεταβάλλοντας τις
των pixels ανά μονάδα επιφανείας, και διαστάσεις της εικόνας.
συνήθως μετριέται σε pixels / in2 ή
διαφορετικά σε d.p.i ( dots per inch ).
Είναι φανερό ότι η ευκρίνεια εξαρτάται
τόσο από τις διαστάσεις, όσο και από το
πλήθος των αποχρώσεων της κάθε
εικόνας. Αν για παράδειγμα κρατήσουμε
σταθερό το βάθος χρώματος και
μεταβάλλουμε (μειώνουμε) τις διαστάσεις
μιας εικόνας, τότε η εικόνα θα εμφανίσει
το φαινόμενο του σκακιού (checkboard).
Δηλαδή η εικόνα θα κατατεμαχιστεί σε
ομοιόμορφες χρωματικά περιοχές, όπως
στο διπλανό Σχήμα 1.4.
12

Εισαγωγικές έννοιες (6)


• Αν από την άλλη πλευρά Σχήμα 1.5 Μεταβολή της ευκρίνειας κρατώντας
κρατήσουμε σταθερές τις σταθερές τις διαστάσεις της εικόνας και
διαστάσεις και μειώσουμε το μεταβάλλοντας το k.
βάθος χρώματος, τότε θα Εικόνα 1η : k=24 bit ( 16 εκατομμύρια χρώματα )
εμφανιστούν πάλι οπτικά Εικόνα 2η : k=8 bit ( 256 χρώματα )
ομοιόμορφες χρωματικές
περιοχές, που όμως η Εικόνα 3η : k=4 bit ( 16 χρώματα )
ευκρίνειά τους θα καθορίζεται Εικόνα 4η : k=1 bit ( 2χρώματα )
από το k και τη συγγένεια των
τοπικών αποχρώσεων. Αυτό
φαίνεται στο Σχήμα 1.5.

13
Εισαγωγικές έννοιες (7)
• Η μορφή της ψηφιακής
εικόνας, μετά τη
δειγματοληψία και την
κβάντιση, είναι ένας
πίνακας (matrix)
πραγματικών αριθμών.

• Αντίθεση ή contrast σε μια


εικόνα είναι η κλίμακα από
τη σκοτεινότερη στη
φωτεινότερη περιοχή της
και ορίζεται ως:

14

Εισαγωγικές έννοιες (8)

Ψηφιοποίηση εικόνας

15
Χρωματικά συστήματα (1)
• Το εκλαμβανόμενο χρώμα κάποιου αντικειμένου από το ανθρώπινο μάτι
καθορίζεται ουσιαστικά από τη φύση του φωτός που ανακλάται από
αυτό. Το ορατό φως είναι συγκροτημένο από ένα σχετικά περιορισμένο
εύρος συχνοτήτων μέσα στο σύνολο του ηλεκτρομαγνητικού φάσματος.
Ένα σώμα που αντανακλά με τον ίδιο τρόπο (προσδίδει ίσες ποσότητες
φωτός) όλα τα μήκη κύματος του ορατού φάσματος εμφανίζεται λευκό.
Ωστόσο, ένα σώμα που «ευνοεί» ένα περιορισμένο εύρος από το οπτικό
φάσμα, τότε αυτό εμφανίζεται να έχει κάποια χρωματική απόχρωση. Για
παράδειγμα, τα αντικείμενα που εμφανίζονται με πράσινο χρώμα
αντανακλούν το φως εκείνο που το μήκος κύματος κυμαίνεται κυρίως στο
φάσμα των 500 με 570 nm (10-9m), ενώ απορροφούν το μεγαλύτερο
μέρος της ενέργειας του υπόλοιπου φάσματος

16

Χρωματικά συστήματα (2)


• Ο χαρακτηρισμός του φωτός είναι βασικός στην κατανόηση του
χρώματος. Αν το φως είναι άχρωμο, τότε το μόνο χαρακτηριστικό του
γνώρισμα είναι η ένταση (intensity). Ένα παράδειγμα αχρωματικής όψης
είναι αυτή της ασπρόμαυρης τηλεόρασης όπου έχουμε απουσία
χρώματος με εναλλαγή μόνο της ποσότητας φωτός. Με αυτόν τον τρόπο
δημιουργούνται διαφορετικά επίπεδα του γκρι. Συνεπώς, ο όρος επίπεδο
του γκρι αναφέρεται στη βαθμωτή μέτρηση της έντασης που
διακυμαίνεται από το μαύρο στο γκρίζο και καταλήγει στο λευκό.
• Οι τρεις βασικές ποσότητες που χρησιμοποιούνται για να περιγράψουν
την ποιότητα της πηγής του χρωματικού φωτός είναι η ακτινοβολία
(radiance) , η φωτεινότητα (luminance) και η λαμπρότητα
(brightness).
• Η ακτινοβολία είναι το τελικό ποσό ενέργειας που εκπέμπεται από την
πηγή του φωτός, και μετριέται συνήθως σε Watt.

17
Χρωματικά συστήματα (3)
• Η φωτεινότητα δίνει μια μέτρηση του ποσού της ενέργειας που λαμβάνει ένας
παρατηρητής και μετριέται σε lumens.
• Η λαμπρότητα είναι ένα υποκειμενικό μέγεθος το οποίο πρακτικά είναι αδύνατο
να υπολογισθεί. Ενσωματώνει την αχρωματική έννοια της έντασης του φωτός
(intensity).
• Εξαιτίας της δομής του ανθρώπινου ματιού, όλα τα χρώματα θεωρούνται
συνδυασμοί των τριών βασικών χρωμάτων (primary colors): του κόκκινου (Red),
του πράσινου (Green) και του μπλε (Blue). Για λόγους τυποποίησης καθορίστηκαν
οι ακόλουθες τιμές: Κόκκινο = 700 nm / Πράσινο = 546,1 nm / Μπλε = 435,8
nm.
• Τα βασικά χρώματα μπορούν να αναμιχθούν ώστε να παραχθούν τα
δευτερεύοντα χρώματα (secondary colors). Αυτά είναι τα: ματζέντα (κόκκινο και
μπλε), κυανό (πράσινο και μπλε), κίτρινο (κόκκινο και πράσινο). Ο συνδυασμός
των τριών βασικών χρωμάτων ή ενός δευτερεύοντος με το αντίθετο βασικό,
παράγουν το λευκό χρώμα αν αναμιχθούν με συγκεκριμένες εντάσεις φωτός. Τα
αποτελέσματα αυτά φαίνονται στο παρακάτω Σχήμα 1.6.
18

Χρωματικά συστήματα (4)


• Τα χαρακτηριστικά με τα οποία γίνεται ο διαχωρισμός μεταξύ των χρωμάτων
είναι η λαμπρότητα (brightness), η απόχρωση (hue) και η χρωματική
καθαρότητα ή ποσότητα χρώματος (saturation).
• Η λαμπρότητα είναι ένα υποκειμενικό μέγεθος το οποίο πρακτικά είναι αδύνατο
να υπολογισθεί. Ενσωματώνει την αχρωματική έννοια της έντασης του φωτός
(intensity).
• Η απόχρωση αντιπροσωπεύει το υπερισχύον χρώμα που εκλαμβάνεται από ένα
παρατηρητή.
• Η χρωματική καθαρότητα αναφέρεται στη σχετική αγνότητα ή στο ποσό του
λευκού φωτός όταν αυτό αναμιγνύεται με μια απόχρωση. Π.χ.: το κόκκινο έχει
πλήρη χρωματική καθαρότητα, ενώ το ροζ (κόκκινο και άσπρο) έχει μικρότερη
χρωματική καθαρότητα.

19
Χρωματικά συστήματα (5)

Σχήμα 1.6 Στην 1η εικόνα έχουμε την ανάμειξη των βασικών χρωμάτων και στη
2η των δευτερευόντων.

20

Χρωματικά συστήματα (6)


• Μοντέλο RGB: Το μοντέλο αυτό απλοποιεί αρκετά την σχεδίαση
γραφικών συστημάτων, αλλά δημιουργεί δυσκολίες στην ανάπτυξη
αλγορίθμων λόγω της συσχέτισης των χρωματικών συνιστωσών του. Για
παράδειγμα η εξισορρόπηση ιστογράμματος λειτουργεί μόνο επί της
φωτεινότητας μίας εικόνας και πραγματοποιείται πιο εύκολα στο μοντέλο
HSI. Έτσι πολλές φορές είναι η αναγκαία η μετατροπή ενός χρωματικού
μοντέλου σε ένα άλλο. Χρησιμοποιείται συνήθως σε έγχρωμες οθόνες και
κάμερες. Η μετατροπή RGB σε κλίμακα γκρι γίνεται για το σύστημα NTSC
με τη σχέση:
• Gray=0.299R + 0.587G + 0.114B (1.10)
• ή μπορεί να δοθεί σαν ο μέσος όρος των τριών χρωματικών συνιστωσών:
• Gray=0.333R + 0.333G + 0.333B (1.11)

21
Χρωματικά συστήματα (7)
Μοντέλο CMY ή CMYK: Το μοντέλο αυτό ορίζεται από τα χρώματα κυανό
(πράσινο και μπλε) ή (Cyan), ματζέντα (κόκκινο και μπλε) ή (Magenta), κίτρινο
(κόκκινο και πράσινο) ή (Yellow) τα οποία είναι συμπληρωματικά των
χρωμάτων RGB. Χρησιμοποιείται συνήθως σε έγχρωμους εκτυπωτές. Η
μετατροπή μεταξύ των δύο συστημάτων γίνεται ως εξής:
C=1–R
M=1–G (1.12)
Y=1–B

22

Χρωματικά συστήματα (8)


Εάν σε αυτό το σύστημα προστεθεί και το μαύρο, προκύπτει το CMYK, το
οποίο παρέχει στις εκτυπώσεις καλύτερο μαύρο από εκείνο το οποίο
παράγει ο συνδυασμός των τριών χρωμάτων. Η μετατροπή από το CMY στο
CMYK και αντίστροφα γίνεται με αφαίρεση ή πρόσθεση του μαύρου στα
βασικά χρώματα αντίστοιχα.

Μοντέλο HSI: Το μοντέλο αυτό αποτελείται από τα τρία χαρακτηριστικά του


χρώματος, την απόχρωση ή Hue, την καθαρότητα ή Saturation, τη
φωτεινότητα ή Intensity. Σε αυτό το σύστημα δεν χρειάζεται η αναλογία των
RGB, αλλά το χρώμα καθορίζεται από τη μεταβολή του Η. Η μεταβολή του S
δίνει διαφορετική καθαρότητα στο ίδιο χρώμα. Για παράδειγμα το σκούρο
κόκκινο μπορεί να γίνει ροζ με μεταβολή του S. Τέλος το Ι καθορίζει τη
φωτεινότητα. Στο μοντέλο HIS, το Η είναι γωνία 0 έως 3600 , το S είναι ακτίνα
0 έως 1 και το Ι είναι ο άξονας z με τιμές 0 για το μαύρο και 1 για το άσπρο.

23
Χρωματικά συστήματα (9)
Μοντέλο YCbCr: Το μοντέλο αυτό διαχωρίζει τη φωτεινότητα (Υ) από την
πληροφορία του χρώματος (μπλε και κόκκινο – CbCr). Η μετατροπή από το
RGB δίνεται από:
Y = 0.29900R + 0.58700G + 0.11400B
Cb = -0.16874R – 0.33126G + 0.50000B (1.13)
Cr = 0.50000R – 0.41869G – 0.08131B
Αντίστροφα:
R = 1.00000Y + 1.40200Cr
G = 1.00000Y – 0.34414Cb – 0.71414Cr (1.14)
B = 1.00000Y + 1.77200Cb

24

Χρωματικά συστήματα (10)


Μοντέλο YIQ: Τα βασικά χαρακτηριστικά αυτού του μοντέλου είναι η φωτεινότητα
(Υ), η απόχρωση και η χρωματική καθαρότητα (Ι,Q). Χρησιμοποιείται στην έγχρωμη
τηλεοπτική μετάδοση. Πρόκειται για μια επανακωδικοποίηση του μοντέλου RGB, για
τη βελτιστοποίηση της μετάδοσης και τη συμβατότητα με την ασπρόμαυρη
τηλεόραση. Αυτό συμβαίνει γιατί η ασπρόμαυρη τηλεόραση αντιλαμβάνεται μόνο
τον παράγοντα Υ της εκπομπής, που αφορά τη φωτεινότητα
• Στο Matlab υπάρχουν συναρτήσεις μετατροπής από το ένα χρωματικό μοντέλο
στο άλλο:
• rgb2ntsc και ntsc2rgb για μετατροπή RGB εικόνων σε YIQ και αντίστροφα για το
NTSC.
• rgb2ycbcr και ycbcr2rgb για μετατροπή RGB εικόνων σε YCbCr και αντίστροφα.
• rgb2hsv και hsv2rgb για μετατροπή RGB εικόνων σε HSV και αντίστροφα.

25
Οι εικόνες στο Matlab (1)

26

Οι εικόνες στο Matlab (2)


• gray2ind - μετατροπή intensity image σε indexed.
• im2bw - μετατροπή σε binary image από τους άλλους
τύπους με τη χρήση κατωφλίου φωτεινότητας.
• ind2gray - μετατροπή indexed σε intensity.
• mat2gray - μετατροπή ενός πίνακα τιμών σε intensity image
με κλιμάκωση των τιμών του.
• rgb2gray - μετατροπή ενός RGB σε intensity.

27
Οι εικόνες στο Matlab (3)
• rgb2ind - μετατροπή ενός RGB σε indexed.
Υπάρχουν συναρτήσεις οι οποίες μετατρέπουν τον τύπο
παράστασης μιας εικόνας, όπως για παράδειγμα:
• im2double - μετατροπή στο διάστημα (0,1).
• im2uint8 - μετατροπή στο διάστημα (0,255).
• im2uint16 - μετατροπή στο διάστημα (0,65535).

28

Οι εικόνες στο Matlab (4)


Σημείωση: Η μετατροπή από ένα τύπο σε ένα άλλο με λιγότερα bits
απεικόνισης μπορεί να προκαλέσει απώλεια πληροφορίας. Για
παράδειγμα μια μετατροπή από 16 bits (65536 ή 256×256 επίπεδα) σε 8
bits (256 επίπεδα) συμπτύσσει 256 αποχρώσεις σε μία, για κάθε επίπεδο
μετατροπής
Το Matlab διαθέτει συναρτήσεις για την ανάγνωση και εγγραφή αρχείων με
εικόνες διαφόρων τύπων, όπως:
• BMP (Microsoft Windows Bitmap)
• JPEG (Joint Photographic Experts Group)
• PCX (Paintbrush)
• PNG (Portable Network Graphics)
• TIFF (Tagged Image File Format)

29
Οι εικόνες στο Matlab (5)
• Οι συναρτήσεις ανάγνωσης και εγγραφής είναι η imread και η imwrite
αντίστοιχα. Η ανάγνωση ή εγγραφή μιας εικόνας σε δυαδική μορφή
(συνήθως καλείται raw ή bin) δεν υποστηρίζεται από αυτές τις
συναρτήσεις. Παρακάτω δίνεται ένα πρόγραμμα ανάγνωσης τέτοιων
αρχείων.
Η απεικόνιση των εικόνων γίνεται με τη συνάρτηση imshow:
• imshow(I,map) - εμφάνιση εικόνων με χρωματικό δείκτη.
• imshow(I,n) - εμφάνιση εικόνων με n επίπεδα του γκρι.
• imshow(BW) - εμφάνιση δυαδικών εικόνων.
• imshow(‘onoma.tiff’) - εμφάνιση αρχείου εικόνας.

30

Οι εικόνες στο Matlab (6)


• α) Ανάγνωση της εικόνας woman.mat, η οποία ευρίσκεται στο Matlab.
Σημειώνεται ότι ο συγκεκριμένος τύπος αρχείου είναι του Matlab και
δημιουργείται εάν ένας πίνακας αποθηκευτεί με την εντολή save. Η
ανάγνωση ενός τέτοιου αρχείου γίνεται με την εντολή load και ο πίνακας
αναπαρίσταται με το Χ.
• Παράδειγμα 1.1

31
Οι εικόνες στο Matlab (7)
β) Η τιμή φωτεινότητας του πρώτου pixel ευρίσκεται:
» map(X(1,1),:)
ans =
0.6054 0.6054 0.6054
Εάν αυτή η τιμή πολλαπλασιαστεί με το 255 θα δώσει την ισοδύναμη τιμή του
πρώτου pixel για intensity image τύπου double, δηλαδή 154.377 ή 154 για τύπο
uint8.

32

Οι εικόνες στο Matlab (8)


Εάν αυτή η τιμή πολλαπλασιαστεί με το 255 θα δώσει την ισοδύναμη τιμή του πρώτου
pixel για intensity image τύπου double, δηλαδή 154.377 ή 154 για τύπο uint8.
γ) η μετατροπή indexed image σε intensity image γίνεται ως εξής:
» Y=ind2gray(X,map);
» Y(1:5,1:5)
ans =
0.6054 0.4376 0.5567 0.5097 0.5567
0.5097 0.5602 0.4837 0.5602 0.4376
0.5097 0.6054 0.5097 0.5567 0.5602
0.5388 0.5097 0.4376 0.5602 0.4376
0.4376 0.6054 0.5097 0.4837 0.5097

33
Οι εικόνες στο Matlab (9)
δ) Η μετατροπή από τύπο double σε τύπο uint8 γίνεται ως εξής:

» Z=im2uint8(Y);
» Z(1:5,1:5)

ans =
154 112 142 130 142
130 143 123 143 112
130 154 130 142 143
137 130 112 143 112
112 154 130 123 130

34

Οι εικόνες στο Matlab (10)


ε) Η εικόνα Χ » X1=X(1:8:256,1:8:256);
υποδειγματοληπτείται με » [X2,newmap]=imapprox(X,map,64);
συντελεστή 8, με αποτέλεσμα » whos
την ελάττωση της ευκρίνειάς της.
Για να φανεί η διαφορά, Name Size Bytes Class
απεικονίζουμε την εικόνα στις X 256x256 524288 double array
ίδιες διαστάσεις με την αρχική. X1 32x32 8192 double array
Επίσης, ελαττώνονται οι X2 256x256 65536 uint8 array
αποχρώσεις της από 256 σε 64, map 255x3 6120 double array
Σχήμα 1.7. newmap 32x3 768 double array

Grand total is 132957 elements using 604904


bytes

35
Οι εικόνες στο Matlab (11)
» imshow(X,map);
» figure;
» imshow(X1,map);
» figure;
» imshow(X2,newmap);

στ) Η φωτεινότητα μιας εικόνας μπορεί να μεταβληθεί, εάν οι τιμές των


pixels μετατοπιστούν προς το άσπρο ή μαύρο. Αυτό γίνεται με την εντολή: Υ
= imadjust (X, [low high], [bottom top]), όπου οι τιμές της Χ που είναι
μικρότερες της low παίρνουν την τιμή bottom (συνήθως 0) και οι τιμές που
είναι μεγαλύτερες του high παίρνουν τιμή top (συνήθως 1). Σε περίπτωση
εικόνων indexed γίνεται το ίδιο με το δείκτη (map).

36

Οι εικόνες στο Matlab (12)


Για παράδειγμα οι εντολές: newmap = imadjust (map, [0 0.7], [0 1]) και
imshow(X,newmap) δίνουν την εξής εικόνα, Σχήμα 1.8, η οποία είναι ίδια με
την εικόνα από τις εντολές : Χ3 = ind2gray(X,map) και Χ3 = imadjust (Χ3, [0
0.7], [0 1]) και imshow(X3):

Σχήμα 1.7 Αρχική εικόνα Εικόνα με υποδειγματοληψία Χ1 Εικόνα με λιγότερες αποχρώσεις Χ2

37
Οι εικόνες στο Matlab (13)
• Παράδειγμα 1.2
α) Οι εικόνες πολλές φορές ευρίσκονται σε μορφή raw ή bin, όπου κάθε pixel
έχει δυαδική τιμή από 0 έως 255. Η ανάγνωση αυτών των εικόνων,
γνωρίζοντας τη διάστασή τους, μπορεί να γίνει ως εξής:

Σχήμα 1.8 Αρχική εικόνα Χ Μεταβολή φωτεινότητας

38

Οι εικόνες στο Matlab (14)

Δυαδικό αρχείο

39
Οι εικόνες στο Matlab (15)
• Η εμφάνιση της εικόνας στην οθόνη μπορεί να γίνει με την εντολή
imshow(im’,gray(256)) επειδή έχει τύπο double ή με την εντολή
imshow(uint8(im’)), η οποία την μετατρέπει πρώτα σε τύπο uint8.
Χρησιμοποιείται ο ανάστροφος πίνακας (transpose) για την
περιστροφή της.
• Η εικόνα im μπορεί να αποθηκευτεί σε αρχείο με δυαδική μορφή, σαν
filename.mat, με την εντολή save filename im και μπορεί να
επαναφορτωθεί με την εντολή load filename.

40

Οι εικόνες στο Matlab (16)

Αρχείο εικόνας τύπου mat Χρωματικός πίνακας


β) Ένα αρχείο εικόνας τύπου mat, εκτός
από τον πίνακα της εικόνας,
συνοδεύεται και από τον αντίστοιχο
χρωματικό πίνακα.

41
Οι εικόνες στο Matlab (17)

Σχήμα 1.9

42

Οι εικόνες στο Matlab (18)


γ) Ο πίνακας μιας
εικόνας με το χρωματικό
της πίνακα μπορεί να
εγγραφεί σαν ένας
διαφορετικός τύπος
εικόνας.

43
Οι εικόνες στο Matlab (19)
δ) Ένας τύπος εικόνας μπορεί να Σχήμα 1.10 Μετατροπή σε εικόνα
μετατραπεί σε άλλο τύπο. Το παρακάτω
Σχήμα 1.10 δείχνει τη μετατροπή της φωτεινότητας χρωματικού δείκτη
έγχρωμης εικόνας clown σε εικόνα
φωτεινότητας.
Σχήμα 1.10 Αρχική έγχρωμη εικόνα Χ

44

Οι εικόνες στο Matlab (20)


ε) Με τον ίδιο τρόπο μπορεί μια
εικόνα χρωματικού δείκτη να
μετατραπεί σε μια εικόνα RGB.

45
Οι εικόνες στο Matlab (21)
Παράδειγμα 1.3 : Διαβάζεται και απεικονίζεται μια εικόνα με τις εντολές:
» X=imread('pentagon.png');
» imshow(X);
» figure;
» imshow(X,[80 200]);
» figure;
» imshow(X,[]);
Η ελάχιστη τιμή του πίνακα Χ είναι 63 και η μέγιστη 241. Το [80 200] υποδηλώνει ότι
όλα τα pixels με τιμή μικρότερη ή ίση του 80 θα απεικονιστούν μαύρα (δηλ. 0) και όλα
τα pixels με τιμή μεγαλύτερη ή ίση του 200 θα απεικονιστούν άσπρα (δηλ. 255). Οι
ενδιάμεσες τιμές θα κλιμακωθούν στον προκαθορισμένο αριθμό επιπέδων (π.χ. 256).
Το [ ] υποδηλώνει ότι τα προηγούμενα όρια είναι η ελάχιστη και μέγιστη τιμή του
πίνακα (δηλ. το 63 και 241). Το αποτέλεσμα φαίνεται στις εικόνες του παρακάτω
Σχήματος 1.11.
46

Οι εικόνες στο Matlab (22)


Σχήμα 1.11 α. Αρχική εικόνα με Σχήμα 1.11 β. Αύξηση της
μικρή δυναμική περιοχή δυναμικής περιοχής

47
Οι εικόνες στο Matlab (23)
• Παρατηρούμε ότι με αυτό τον τρόπο είναι Σχήμα 1.11 γ. Μέγιστη δυνατή
δυνατή η μετατροπή μιας εικόνας με αύξηση της δυναμικής
φτωχή ευκρίνεια σε εικόνα η οποία να περιοχής
αναδεικνύει καλύτερα ορισμένες
περιοχές της. Βέβαια αυτό μπορεί να
γίνει και με διαφορετικούς τρόπους, όπως
θα εξεταστεί παρακάτω.
• Μια εικόνα μπορεί να αποθηκευτεί είτε
σε μορφή mat με την εντολή save είτε με
την εντολή imwrite σε μια μορφή
υποστηριζόμενη από το Matlab. Για
παράδειγμα η προηγούμενη εικόνα, η
οποία είναι σε μορφή png, μπορεί να
αποθηκευτεί σε άλλη μορφή ως εξής:
• » imwrite(X,'pentagon2.tif');

48

Το ιστόγραμμα (1)
Το ιστόγραμμα μιας ψηφιακής εικόνας Πολλές φορές χρησιμοποιείται το
(gray scale για χάριν απλότητας) με L κανονικοποιημένο ιστόγραμμα
επίπεδα φωτεινότητας στην περιοχή [0 (normalized histogram) το οποίο
255] ορίζεται σαν την ακόλουθη διακριτή ευρίσκεται διαιρώντας τη σχέση (1.15)
συνάρτηση: με το συνολικό αριθμό των pixels στην
εικόνα.
h(rk) = nk (1.15)
(1.16)
Όπου rk είναι το k επίπεδο φωτεινότητας
στο διάστημα [0 255] και nk είναι ο
αριθμός των pixels στην εικόνα που
έχουν επίπεδο φωτεινότητας rk.

49
Το ιστόγραμμα (2)
Όπου n είναι ο συνολικός αριθμός των pixels της εικόνας και k = 1,2,…,L. Το p(rk)
αντιπροσωπεύει την πιθανότητα εμφάνισης του επιπέδου φωτεινότητας rk. Η
συνάρτηση του Matlab για την εύρεση του ιστογράμματος είναι:
h = imhist ( I , b )
Όπου Ι είναι η εικόνα εισόδου και b είναι ο αριθμός των βημάτων (bins), ο οποίος
είναι ίσος με 256 εάν δεν ορίζεται. Το κανονικοποιημένο ιστόγραμμα δημιουργείται
με τη σχέση:
p = imhist ( I , b ) / numel ( I )
Η συνάρτηση numel ( I ) υπολογίζει τον αριθμό των pixels της εικόνας εισόδου. Η
απεικόνιση του ιστογράμματος στην οθόνη γίνεται μόνο με τη συνάρτηση imhist ( I ,
b ).
Για παράδειγμα η συχνότητα εμφάνισης κάθε απόχρωσης της προηγούμενης εικόνας
“pentagon” και η απεικόνιση του ιστογράμματος φαίνεται στο Σχήμα 1.12.

50

Το ιστόγραμμα (3)
Πίνακας Σχήμα 1.12 Ιστόγραμμα εικόνας
“pentagon”

51
Βιβλιογραφία
1. N. Η. Παπαμάρκος, “Ψηφιακή Επεξεργασία και Ανάλυση Εικόνας”,
Δημοκρίτειο, Ξάνθη 2001.
2. Σ. Δ. Κόλλιας, “Επεξεργασία, Ανάλυση και Τεχνολογία Εικόνων και
Βίντεο”, Σημειώσεις ΕΜΠ, Αθήνα 2001.
3. I. Pitas, “Digital Image Processing Algorithms”, Prentice Hall, 1992.
4. R. C. Gonzalez, R. E. Woods, “Digital Image Processing”, Prentice Hall, 2nd
Edition 2002.
5. R. C. Gonzalez, R. E. Woods, S. L. Eddins, “Digital Image Processing Using
MATLAB”, Prentice Hall.
6. A. K. Jain, “Fundamentals of Digital Image Processing”, Prentice Hall,
1989.

52

Ενότητα 2 : Βελτιστοποίηση εικόνας


(Image enhancement)
Σκοποί ενότητας
• Στην ενότητα αυτή εξετάζονται διάφοροι
αλγόριθμοι βελτιστοποίησης μιας εικόνας,
όπως η επέκταση της φωτεινότητας ή η
βελτίωση της αντίθεσης. Ακόμα εξετάζονται οι
τεχνικές χώρου με τις οποίες δημιουργούμε
φίλτρα τα οποία κυρίως χρησιμοποιούνται για
την αποκατάσταση μιας εικόνας από το
θόρυβο.

Περιεχόμενα ενότητας
• Τι είναι ο εμπλουτισμός εικόνας • Εκθετική συμπίεση κλίμακας
• Τεχνικές σημείου φωτεινότητας
• Αντιστροφή φωτεινότητας • Πράξεις επί των εικόνων
• Επέκταση της αντίθεσης • Εξισορρόπηση ιστογράμματος
• Κλιμάκωση φωτεινότητας • Προσαρμογή ιστογράμματος σε
• Κόψιμο φωτεινότητας δεδομένο ιστόγραμμα
• Τεμαχισμός κλίμακας • Τεχνικές χώρου-Φίλτρα
φωτεινότητας • Γραμμικά φίλτρα
• Ανάλυση σε δυαδικές εικόνες • Μη γραμμικά φίλτρα
• Λογαριθμική συμπίεση κλίμακας • Τετραδικό δέντρο
φωτεινότητας

5
Τι είναι ο εμπλουτισμός εικόνας
(Image Enhancement);
• Ο εμπλουτισμός εικόνας διαπραγματεύεται τους τρόπους βελτίωσης μιας
εικόνας, δηλαδή όλες εκείνες τις μεθόδους επεξεργασίας οι οποίες
καθιστούν την εικόνα περισσότερο εκμεταλλεύσιμη.
• Για παράδειγμα, η μεταβολή της φωτεινότητας, η βελτίωση της
αντίθεσης, η βελτίωση του λόγου σήμα προς θόρυβο, η μεταβολή της
οξύτητας, η μεταβολή του τονισμού μιας εικόνας ή ακόμα η σμίκρυνση, η
μεγέθυνση, η περιστροφή είναι αντικείμενα αυτού του κεφαλαίου.
• Οι διάφορες μέθοδοι που αφορούν στη βελτίωση της ποιότητας μιας
εικόνας ομαδοποιούνται σε τρεις βασικές κατηγορίες: τις τεχνικές
σημείου ή pixel (point operations), τις τεχνικές στο πεδίο της εικόνας ή
χωρικές τεχνικές (spatial operations) και τις τεχνικές στο πεδίο
συχνοτήτων (frequency operations) ή στο πεδίο μετασχηματισμού
γενικότερα (transform operations).

Τεχνικές σημείου

7
Αντιστροφή φωτεινότητας (1)

Η αντιστροφή της
φωτεινότητας μιας
εικόνας
πραγματοποιείται
σύμφωνα με την εξής
σχέση:

Αντιστροφή φωτεινότητας (2)


Σχήμα 2.2 Α. Αρχική εικόνα Σχήμα 2.2 Β. Αντιστροφή
φωτεινότητας

9
Επέκταση της αντίθεσης (1)
• Πολλές εικόνες έχουν Σχήμα 2.3 Επέκταση της αντίθεσης
χαμηλή αντίθεση, λόγω
κακού φωτισμού λήψης, με
αποτέλεσμα το οπτικό
αποτέλεσμα να είναι
φτωχό. Η γραμμική
μεταβολή μιας περιοχής
επιπέδων φωτεινότητας της
εικόνας καλείται επέκταση
της αντίθεσης (contrast
stretching) και η γενική της
μορφή περιγράφεται από
το Σχήμα 2.3 και τη σχέση
(2.3):

10

Επέκταση της αντίθεσης (2)


Το Σχήμα 2.4 δείχνει την εικόνα Σχήμα 2.4 Αρχική εικόνα και
“pout.tif” με χαμηλό επίπεδο αντίθεσης ιστόγραμμα
και το αντίστοιχο ιστόγραμμά της.

Τα επίπεδα φωτεινότητας περιορίζονται


στη περιοχή 70 έως 170 περίπου,
δίνοντας ένα φτωχό αποτέλεσμα. Εάν,
εφαρμόζοντας την παραπάνω σχέση,
αυτή η περιοχή φωτεινότητας επεκταθεί
σε ολόκληρη την περιοχή [0, 255],
θέτοντας I1’ = 0 και Ι2’ = 255, η εικόνα
γίνεται φωτεινότερη και το αντίστοιχο
ιστόγραμμά της επεκτείνεται σε
ολόκληρη την περιοχή φωτεινότητας,
Σχήμα 2.5.

11
Επέκταση της αντίθεσης (3)
Σχήμα 2.5 Εικόνα και
ιστόγραμμα μετά την
επέκταση της
φωτεινότητας

12

Επέκταση της αντίθεσης (4)


• Παράδειγμα 2.1
• Στη συγκεκριμένη περίπτωση,
το πρόγραμμα το οποίο
χρησιμοποιήθηκε για την
παραγωγή του παραπάνω
Σχήματος είναι το ακόλουθο:
• Οι τιμές 0.3059 και 0.6314, τις
οποίες δημιούργησε η
συνάρτηση stretchlim(x),
αντιστοιχούν σε φωτεινότητες
78 και 161 αντίστοιχα, οι
οποίες ευρίσκονται στα άκρα
του ιστογράμματος της
αρχικής εικόνας.

13
Κλιμάκωση φωτεινότητας (1)

Σχήμα 2.6 Καμπύλη


κλιμάκωσης φωτεινότητας

14

Κλιμάκωση φωτεινότητας (2)


Σχήμα 2.7
Κλιμάκωση
φωτεινότητας για
την εικόνα “spine”.

15
Κόψιμο φωτεινότητας (1)
Σχήμα 2.8 Κόψιμο
και κατωφλίωση του
επιπέδου
φωτεινότητας

16

Κόψιμο φωτεινότητας (2)


Σχήμα 2.9
Κατωφλίωση της
εικόνας “pout.tif”

17
Τεμαχισμός κλίμακας φωτεινότητας
Σχήμα 2.10 Τεμαχισμός
φωτεινότητας εικόνας

18

Παράδειγμα 2.1 (1)


• Το πρόγραμμα με το οποίο μπορεί να γίνει
τεμαχισμός φωτεινότητας μιας εικόνας στο Matlab.
• Η εικόνα “spine” μετά την κλιμάκωση φωτεινότητας
έχει τη μορφή του Σχήματος 2.7. Η εφαρμογή αυτών
των δύο τεχνικών σε αυτήν την εικόνα και στην
περιοχή [80,110] δίνει τις εικόνες του παρακάτω
Σχήματος 2.11(α) και (β). Το πρόγραμμα τεμαχισμού
είναι το ακόλουθο.
load spine;
x=rescale(X);
y=slice_im(x,80,110,'1');
imshow(y);
y=slice_im(y,80,110,'2');
figure;
imshow(y);
19
Παράδειγμα 2.1 (2)
Σχήμα 2.11 Τεμαχισμός
φωτεινότητας της εικόνας
“spine”

Σημείωση: Ο τεμαχισμός
της φωτεινότητας δεν
μπορεί να γίνει με την
εντολή imadjust, για
παράδειγμα imadjust(x,[a
b],[0 1]), η οποία
τοποθετεί τα όρια [a b]
στα άκρα [0 1] και
τροποποιεί τις ενδιάμεσες
φωτεινότητες.

20

Ανάλυση σε δυαδικές εικόνες (1)


Σχήμα 2.12 Ανάλυση
εικόνας σε δυαδικές
εικόνες

21
Ανάλυση σε δυαδικές εικόνες (2)
Το πρόγραμμα με το οποίο
μια εικόνα μπορεί να
αναλυθεί σε δυαδικές
εικόνες είναι το
παράπλευρο.
Η εικόνα “woman”
αναλύεται σε δυαδικές
εικόνες με το παρακάτω
πρόγραμμα. Το Σχήμα 2.13
δείχνει την αρχική εικόνα και
πέντε από τις οκτώ δυαδικές
εικόνες, που δημιουργούνται
από τους συντελεστές
βάρους α7, α6, α5, α1, α0
αντίστοιχα.

22

Ανάλυση σε δυαδικές εικόνες (3)


Σχήμα 2.13 Ανάλυση της εικόνας
“woman” σε δυαδικές εικόνες.
(α) Αρχική εικόνα. (β) Δυαδική
εικόνα από το συντελεστή α7. (γ)
Δυαδική εικόνα από το
συντελεστή α6. (δ) Δυαδική
εικόνα από το συντελεστή α5. (ε)
Δυαδική εικόνα από το
συντελεστή α1. (στ) Δυαδική
εικόνα από το συντελεστή α0.
Σημείωση: Η ανάλυση εικόνας σε
δυαδικές εικόνες
χρησιμοποιείται και στην
κωδικοποίησή της. Έτσι, έχει
αναπτυχθεί και άλλη συνάρτηση
σε επόμενο κεφάλαιο.

23
Λογαριθμική συμπίεση
της κλίμακας φωτεινότητας (1)

24

Λογαριθμική συμπίεση
της κλίμακας φωτεινότητας (2)

Σχήμα 2.14 Λογαριθμική


συμπίεση της δυναμικής
περιοχής φωτεινότητας
της εικόνας “Lenna”. (α)
Αρχική εικόνα. (β)
Γραμμική προσαρμογή της
δυναμικής περιοχής. (γ)
Λογαριθμική προσαρμογή
της δυναμικής περιοχής.

25
Λογαριθμική συμπίεση
της κλίμακας φωτεινότητας (3)
Σχήμα 2.15 Λογαριθμική
συμπίεση της δυναμικής
περιοχής φωτεινότητας

26

Εκθετική συμπίεση της


κλίμακας φωτεινότητας (1)

27
Εκθετική συμπίεση της
κλίμακας φωτεινότητας (2)
Σχήμα 2.16 Εκθετική
συμπίεση φωτεινότητας
για διάφορες τιμές του
συντελεστή συμπίεσης γ

28

Εκθετική συμπίεση της


κλίμακας φωτεινότητας (3)

Σχήμα 2.17 Μεταβολή της


απεικόνισης της εικόνας
“woman” μετά από
εκθετική συμπίεση με γ=5.
(α) Αρχική εικόνα. (β)
Εικόνα μετά από την
εκθετική συμπίεση.

29
Πράξεις επί των εικόνων (1)

30

Πράξεις επί των εικόνων (2)

Σχήμα 2.18 Λογική πράξη


επί μιας εικόνας για την
απομόνωση μιας περιοχής
της.

31
Πράξεις επί των εικόνων (3)

Σχήμα 2.19 Διαφορά


μεταξύ των εικόνων ενός
στερεοσκοπικού ζεύγους.
(α) Αριστερή και δεξιά
εικόνα. (β) Η διαφορά
τους.

32

Εξισορρόπηση ιστογράμματος (1)

33
Εξισορρόπηση ιστογράμματος (2)

Σχήμα 2.20 Η εικόνα


“sphere” και το
ιστόγραμμά της. (α) Η
εικόνα. (β) Το
ιστόγραμμά της.

34

Εξισορρόπηση ιστογράμματος (3)

35
Εξισορρόπηση ιστογράμματος (4)

Σχήμα 2.21
Κανονικοποιημένο
ιστόγραμμα και
αθροιστική συνάρτηση
πιθανότητας της εικόνας
“sphere”.

36

Εξισορρόπηση ιστογράμματος (5)

Σχήμα 2.22 Η εικόνα


“sphere” και το
ιστόγραμμά της μετά την
εξισορρόπησή του. (α) Η
εικόνα. (β) Το ιστόγραμμά
της.

37
Εξισορρόπηση ιστογράμματος (6)

38

Προσαρμογή σε δεδομένο
ιστόγραμμα (1)

39
Προσαρμογή σε δεδομένο
ιστόγραμμα (2)
Σχήμα 2.23 Διαδικασία
προσαρμογής εικόνας σε
δεδομένο ιστόγραμμα. (α)
Ιστόγραμμα αρχικής
εικόνας. (β) Αθροιστική
συνάρτηση πιθανότητας
αρχικής εικόνας. (γ)
Δεδομένο ιστόγραμμα. (δ)
Αθροιστική συνάρτηση
πιθανότητας δεδομένου
ιστογράμματος.

40

Προσαρμογή σε δεδομένο
ιστόγραμμα (3)
Σχήμα 2.24 Η εικόνα
“sphere” μετά από
εξισορρόπηση
ιστογράμματος ή
προσαρμογή σε δεδομένο
ιστόγραμμα. (α-β)
Εξισορρόπηση
ιστογράμματος. (γ-δ)
Προσαρμογή σε δεδομένο
ιστόγραμμα.

41
Παράδειγμα 2.2 (1)
Το πρόγραμμα υλοποίησης
δείχνεται παράπλευρα. Το Σχήμα
2.25 δείχνει την πορεία αυτών
των μετατροπών. Το (α)
απεικονίζει την αρχική εικόνα
“forest”, η οποία έχει το
ιστόγραμμα (β). Μετά την
προσαρμογή των επιπέδων
φωτεινότητας στο διάστημα [0
128] προκύπτει η εικόνα (γ) με
αντίστοιχο ιστόγραμμα το (δ).
Η εικόνα αυτή προσαρμόζεται
στο αρχικό ιστόγραμμα (β) και
δίνει την εικόνα (ε) με
ιστόγραμμα το (στ), που είναι
ίδια με τα (α) και (β) αντίστοιχα.
42

Παράδειγμα 2.2 (2)


Σχήμα 2.25 Η εικόνα
“forest” μετά από
προσαρμογή σε δεδομένο
ιστόγραμμα. (α) Αρχική
εικόνα. (β) Ιστόγραμμα
αρχικής εικόνας. (γ) Εικόνα
μετά από περιορισμό των
επιπέδων φωτεινότητας.
(δ) Ιστόγραμμα νέας
εικόνας. (ε) Εικόνα μετά
από προσαρμογή
ιστογράμματος. (στ)
Ιστόγραμμα μετά την
προσαρμογή
ιστογράμματος.
43
Τεχνικές χώρου - Φίλτρα(1)
• Η διαδικασία σύμφωνα
με την οποία η τιμή κάθε
pixel μιας εικόνας
μπορεί να τροποποιηθεί
σύμφωνα με έναν
αλγόριθμο ο οποίος θα
επενεργεί στα γειτονικά
pixels του κάθε φορά
εξεταζόμενου pixel
καλείται χωρικό
φιλτράρισμα και μπορεί
να είναι γραμμικό ή μη
γραμμικό ανάλογα με τη
φύση του
χρησιμοποιούμενου
αλγορίθμου.

44

Τεχνικές χώρου - Φίλτρα(2)


• Εάν η μάσκα είχε όλους τους συντελεστές ίσους με 1, το Ι1’
ισούται με τη μέση τιμή όλων των γειτονικών pixels του
πρώτου pixel της εικόνας εισόδου. Σε αυτή τη διαδικασία,
συνήθως υπάρχει πρόβλημα με τα pixels που ευρίσκονται
στα όρια της εικόνας. Μία περίπτωση είναι τα pixels που δεν
υπάρχουν να θεωρούνται μηδενικής τιμής (zero padding).
Αυτό προφανώς δημιουργεί παραμόρφωση στα όρια της
εικόνας. Άλλη περίπτωση είναι η συμμετρική (symmetric
padding) ή η περιοδική επέκταση (periodic padding).

45
Παράδειγμα 2.3(1)

46

Παράδειγμα 2.3(2)
• Στη πρώτη περίπτωση το γραμμικό • Ένας άλλος τύπος είναι η
φίλτρο καλείται φίλτρο μέσης συνέλιξη (convolution) της
τιμής (averaging filter), ενώ στη εικόνας εισόδου με τη μάσκα.
δεύτερη περίπτωση όπου κάποιοι Σε αυτήν την περίπτωση, η
συντελεστές της μάσκας έχουν μάσκα περιστρέφεται κατά
διαφορετικές τιμές από τη 1800 και στη συνέχεια
μονάδα, το φίλτρο καλείται συσχετίζεται με την εικόνα
ειδικών βαρών μέσης τιμής εισόδου όπως περιγράφεται
(weighting average filter). Στο παραπάνω. Εάν η μάσκα έχει
τελευταίο φίλτρο κάποια pixels συμμετρική μορφή, οι δυο
επιδρούν περισσότερο από άλλα μέθοδοι δίνουν το ίδιο
στη διαμόρφωση της μέσης τιμής. αποτέλεσμα. Οι δυο
Αυτός ο τύπος φίλτρων είναι η παραπάνω μάσκες είναι
συσχέτιση (correlation) της εικόνας συμμετρικές
εισόδου με την αντίστοιχη μάσκα.
47
Γραμμικά φίλτρα (1)
Μια συνάρτηση η οποία δημιουργεί γραμμικό φιλτράρισμα με τον
παραπάνω τρόπο στο Matlab είναι η εξής:
y = imfilter ( x , mask , mode , padd )
Όπου y = εικόνα εξόδου , x = εικόνα εισόδου , mask = πίνακας μάσκας , mode
= ‘corr’ ή ‘conv’ και
padd=μια τιμή (default=0) με την οποία συμπληρώνει την περιφέρεια.
Συνήθως η τιμή αυτή είναι το μηδέν (zero padding).
=‘replicate’ – επανάληψη των τιμών που ευρίσκονται στα όρια της
εικόνας.
=‘symmetric’ – συμμετρικές τιμές ως προς το τέλος της εικόνας.
=‘circular’ – περιοδική επανάληψη της εικόνας μετά τα όρια.

48

Γραμμικά φίλτρα (2)


• Παράδειγμα 2.3 >> x=zeros(128);
>> x(:,1:64)=1;
• Δημιουργούμε μια ασπρόμαυρη
>> imshow(x);
εικόνα, Σχήμα 2.26, και
>> mask=ones(7);
χρησιμοποιούμε την παραπάνω
>> y1=imfilter(x,mask,'corr');
συνάρτηση γραμμικού
>> figure;
φιλτραρίσματος. Η μάσκα η οποία
>> imshow(y1,[]);
χρησιμοποιείται είναι αυτή της
>> y2=imfilter(x,mask,'replicate');
μέσης τιμής, διαστάσεων 7×7. Ο
>> figure;
τρόπος φιλτραρίσματος είναι η
>> imshow(y2,[]);
συσχέτιση (μέση τιμή) και
>> y3=imfilter(x,mask,'symmetric');
δοκιμάζονται όλοι οι τρόποι
>> figure;
τελειώματος της εικόνας.
>> imshow(y3,[]);
>> y4=imfilter(x,mask,'circular');
>> figure;
>> imshow(y4,[]);

49
Γραμμικά φίλτρα (3)
• Με το zero padding (προσθήκη μαύρου
στα όρια) δημιουργούνται θολές
περιοχές μεταξύ άσπρου και μαύρου.
• Το replicate και το symmetric
συμπεριφέρονται ίδια και διορθώνουν
το παραπάνω πρόβλημα.
• Το circular δημιουργεί το ίδιο πρόβλημα
με την πρώτη περίπτωση μόνο εκεί που
η περιοδικότητα δημιουργεί εναλλαγή
άσπρου και μαύρου.
• Σχήμα 2.26 Γραμμικό φιλτράρισμα. (α)
Εικόνα εισόδου. (β) Zero padding. (γ)
Replicate. (δ) Symmetric padding. (ε)
Circular.

50

Γραμμικά φίλτρα (4)


Η συνάρτηση Παράδειγμα 2.4
H συνάρτηση του Matlab η οποία παρέχει τη
μάσκα που πρόκειται να χρησιμοποιήσει η
imfilter είναι: y = fspecial ( ‘ type ’ , parameters )
Όπου type = average , disk , gaussian , laplacian ,
log , motion , prewitt , sobel , unsharp και
parameters είναι οι σταθερές που
προσδιορίζουν το συγκεκριμένο τύπο φίλτρου.
• Μια συνηθισμένη μέθοδος εμπλουτισμού
μιας εικόνας είναι το φιλτράρισμα με μάσκα
Laplacian. Ο τελεστής Laplacian ορίζεται ως
εξής (βλ.2.13):
• Όπου οι δεύτερες παράγωγοι της
συνάρτησης f έχουν την εξής μορφή σε
διακριτή μορφή(βλ.2.14):

51
Γραμμικά φίλτρα (5)
Επομένως ο τελεστής Η μορφή του σαν πίνακας
Laplacian σε διακριτή μορφή είναι η εξής:
είναι:

52

Γραμμικά φίλτρα (6)


Η μορφή του σαν πίνακας είναι η >> mask=fspecial('laplacian',0);
>> mask
εξής: mask =

Το πρόγραμμα με το οποίο γίνεται το 0 1


1 -4
0
1
φιλτράρισμα της εικόνας “moon” 0 1 0

είναι το ακόλουθο. >> x=imread('moon.tif');


>> x=im2double(x);
>> imshow(x,[]);
>> figure;
>> y1=imfilter(x,mask,'replicate');
>> imshow(y1,[]);
>> y2=x-y1;
>> figure;
>> imshow(y2,[]);

53
Γραμμικά φίλτρα (7)
• Η δεύτερη παράγωγος και επομένως • Σχήμα 2.27 Φιλτράρισμα της εικόνας
ο τελεστής Laplacian αναδεικνύει τις “moon” με το Laplacian φίλτρο το
απότομες μεταβολές φωτεινότητας οποίο αναδεικνύει τις ακμές των
σε μια εικόνα (sharpening) ενώ αντικειμένων.
εξομαλύνει τις περιοχές ομαλής
μεταβολής της φωτεινότητας. Αυτό
φαίνεται και στο Σχήμα 2.27.
• Η μεσαία εικόνα είναι αυτή που
προκύπτει από το φιλτράρισμα και
στην οποία έχουν ομογενοποιηθεί
όλες οι περιοχές ομαλής μεταβολής
της φωτεινότητας. Για να πάρουμε
καθαρή εικόνα με τονισμένες τις
ακμές αφαιρούμε από την αρχική
εικόνα αυτή που προέκυψε από το
φιλτράρισμα.

54

Παράδειγμα 2.5 (1)

55
Παράδειγμα 2.5 (2)

Σχήμα 2.28 Εικόνα μετά από φιλτράρισμα με τελεστή Sobel ο οποίος


προσεγγίζει την πρώτη παράγωγο κατά την κάθετη κατεύθυνση.

56

Μη γραμμικά φίλτρα (1)

Η τιμή του τρέχοντος pixel υπολογίζεται με ένα μη γραμμικό τρόπο από τα γειτονικά
του pixels. Το πιο γνωστό από αυτά είναι το φίλτρο median, το οποίο υπολογίζει αν
τιμή του τρέχοντος pixel τη μεσαία τιμή από τα γειτονικά του. Το φίλτρο αυτό
χρησιμοποιείται για την απαλοιφή θορύβου τύπου “salt and pepper”, ο οποίος
εμφανίζεται σαν μαύρα και άσπρα σημάδια σε μια εικόνα. Για την εύρεση της
μεσαίας τιμής σε μια γειτονιά 3×3, πρώτα όλα τα στοιχεία ταξινομούνται κατά
αύξουσα σειρά και μετά επιλέγεται το πέμπτο κατά σειρά στοιχείο, το οποίο ως
μεσαία τιμή τοποθετείται στη θέση του κεντρικού στοιχείου της γειτονιάς. Το φίλτρο
αυτό υποχρεώνει τα στοιχεία με διαφορετικότητα να πάρουν τιμή περίπου ίδια με
τα γειτονικά τους.
57
Μη γραμμικά φίλτρα (2)
• Στο Matlab το φίλτρο median παρέχεται με τη συνάρτηση:
y = medfilt2 ( x , [m n] , pad)
• Όπου [m n] είναι η γειτονιά (π.χ. 3×3) και pad είναι ο τρόπος
υπολογισμού στα όρια της εικόνας (‘zero’ ή ‘symmetric’).
• Παρακάτω προστίθεται θόρυβος τύπου “salt and pepper” σε
μια εικόνα και εφαρμόζεται ένα φίλτρο median για την
αντιμετώπισή του.

58

Μη γραμμικά φίλτρα (2)


>> Σχήμα 2.29 Εικόνα μετά από φιλτράρισμα με
x=imread('cameraman.tif'); φίλτρο τύπου median με μηδενική ή
>> x1=imnoise(x,'salt & συμμετρική επέκταση στα όριά της.
pepper',0.2);
>> y=medfilt2(x1,[3
3],'zero');
>> y1=medfilt2(x1,[3
3],'symmetric');
>> imshow(x);
>> figure;
>> imshow(x1);
>> figure;
>> imshow(y);
>> figure;
>> imshow(y1);

59
Τετραδικό δέντρο (1)
Η ανάλυση σε τετραδικό δέντρο (QTD-Quad Tree Decomposition) διαιρεί μια
εικόνα σε υπο-εικόνες σύμφωνα με κάποιο κριτήριο. Στο Matlab
πραγματοποιείται με τη συνάρτηση qtdecomp ως εξής:
S = qtdecomp (x, thr, mindim)
S=Πίνακας ο οποίος περιέχει τις συντεταγμένες των κορυφών των υπο-
εικόνων
x=Εικόνα εισόδου
thr=Κατώφλι διάσπασης με τιμή στο διάστημα [0 1]-Εάν η μέγιστη μείον την
ελάχιστη φωτεινότητα μιας υπο-εικόνας υπερβαίνει το κατώφλι thr τότε
πραγματοποιείται διάσπαση.
Mindim=Ελάχιστο μέγεθος υπο-εικόνας (π.χ. 8Χ8)

60

Τετραδικό δέντρο (2)


Η απεικόνιση του τετραδικού δέντρου γίνεται με τη συνάρτηση qtgetblk ως
εξής:
[vals, r, c]=qtgetblk (x, S, dim)

Vals=τρισδιάστατος πίνακας με όλες τις υπο-εικόνες


r, c=οι κορυφές των υπο-εικόνων
dim=διαστάσεις υπο-εικόνων

61
Τετραδικό δέντρο (3)

62

Τετραδικό δέντρο (4)


• Το κριτήριο διάσπασης μπορεί να δίνεται από μια
συνάρτηση:
S = qtdecomp (x, @fun, parameters)
• fun=Η συνάρτηση η οποία δημιουργεί το
διάνυσμα διάσπασης με λογικές τιμές 0 ή 1
σύμφωνα με κάποιο κριτήριο.
• Το παρακάτω παράδειγμα χρησιμοποιεί τη
συνάρτηση splitfun η οποία υπολογίζει την τυπική
απόκλιση κάθε υπο-εικόνας και τη συγκρίνει με
μια τιμή κατωφλίου. Η συνάρτηση επιστρέφει μια
σειρά λογικών 0 (δεν διαιρείται άλλο) και 1
(διαιρείται), όσα και ο αριθμός των υπο-εικόνων,
τα οποία δείχνουν ποιες υπο-εικόνες θα
διαιρεθούν στη συνέχεια. Η ελάχιστη διάσταση
διάσπασης εμπεριέχεται στη συνάρτηση και
επηρεάζει το διάνυσμα εξόδου.
63
Τετραδικό δέντρο (5)

64

Ενότητα 3 : Αποκατάσταση εικόνας


(Image Restoration)
Σκοποί ενότητας
• Σε αυτή την ενότητα θα ανακαλύψετε τις
μεθόδους με τις οποίες απομακρύνουμε τον
θόρυβο από μια εικόνα συμβάλλοντας έτσι στην
αποκατάστασή της.

Περιεχόμενα ενότητας
• Τύποι θορύβου
• Φίλτρο αριθμητικής μέσης τιμής
• Φίλτρο γεωμετρικής μέσης τιμής
• Φίλτρο μεσαίας τιμής
• Φίλτρο ενδιάμεσου σημείου
• Φίλτρο ρυθμιζόμενης μέσης τιμής
• Προσαρμοζόμενο φίλτρο τοπικού θορύβου
• Προσαρμοζόμενο φίλτρο μεσαίας τιμής

5
Τύποι θορύβου (1)
Υπάρχουν διάφοροι τύποι θορύβου,
η ονομασία των οποίων προκύπτει
από τη μορφή της συνάρτησης
πυκνότητας πιθανότητας (probability
density function ή pdf).

Gaussian noise

• μ = μέση τιμή (mean)


• σ = απόκλιση (standard
deviation)
• σ2 = διασπορά (variance)

Τύποι θορύβου (2)

7
Τύποι θορύβου (3)
• Ο Gaussian θόρυβος υπάρχει σε μια εικόνα κυρίως λόγω της απόδοσης
του αισθητηρίου λήψης κάτω από συνθήκες μη επαρκούς φωτισμού ή
υψηλής θερμοκρασίας.
• Ο Uniform θόρυβος δεν δημιουργείται πρακτικά, αλλά είναι χρήσιμος για
την εξομοίωση αλγορίθμων απαλοιφής θορύβου.
• Ο Impulse θόρυβος δημιουργείται συνήθως από το on/off διακοπτών
(μηχανικών ή ηλεκτρονικών) στη διαδικασία λήψης ή μετάδοσης μιας
εικόνας.
• Υπάρχουν και άλλοι τύποι θορύβου, όπως: ο θόρυβος Rayleigh που
χαρακτηρίζει εικόνες πεδίων, ο θόρυβος exponential ή ο θόρυβος gamma
που χαρακτηρίζουν εικόνες laser κλπ.

Τύποι θορύβου (4)


•Στο Matlab υπάρχει η συνάρτηση imnoise με την οποία προστίθεται θόρυβος σε μια
εικόνα:
y = imnoise ( x , type , parameters )
Όπου: type , parameters  ‘gaussian’ , m , var  m=mean και var=variance (σ2)
 ‘salt & pepper’ , d  d=noise density (d=0.05 δηλ. επηρεάζονται d*h*w pixels)
Επειδή η συνάρτηση μετατρέπει την εικόνα εισόδου σε τύπο double στην περιοχή [0
1], πρέπει και οι παράμετροι να ευρίσκονται στην ίδια περιοχή, δηλαδή πρέπει οι
πραγματικές τιμές να κανονικοποιηθούν: m/255 και var/(2552).
•Ένας άλλος τρόπος παραγωγής θορύβου σε μια εικόνα είναι οι γεννήτριες
ψευδοτυχαίων αριθμών. Στο Matlab υπάρχει η συνάρτηση n = rand ( M , N ), η οποία
παράγει πίνακα Μ×Ν με στοιχεία που παρουσιάζουν ομοιόμορφη κατανομή στην
περιοχή [0 1]. Επίσης τη συνάρτηση n = randn ( M , N ), η οποία παράγει πίνακα Μ×Ν
με στοιχεία που παρουσιάζουν Gaussian κατανομή μηδενικής μέσης τιμής και
μοναδιαίας διασποράς.

9
Τύποι θορύβου (5)
Σχήμα 3.1 Ιστόγραμμα κανονικού Σχήμα 3.1 Ιστόγραμμα κατανομής
θορύβου παραγόμενο από τη Gaussian παραγόμενο από τη
συνάρτηση rand συνάρτηση randn

10

Τύποι θορύβου (6)


• Για να παράγει το Matlab κάθε φορά διαφορετική ακολουθία
ψευδοτυχαίων αριθμών, χρησιμοποιείται η αντίστοιχη
συνάρτηση ως εξής: rand ή randn ( ‘state’ , sum ( 100 *
clock) ). Η σχέση με την οποία δημιουργείται θόρυβος σε μια
εικόνα με την ψευδοτυχαία γεννήτρια είναι:
Noised image = image + σ * noise (3.1)
• Για παράδειγμα, στην εικόνα “cameraman.tif” προστίθεται
Gaussian θόρυβος με σ=1 και σ=30 με το παρακάτω
πρόγραμμα και το αποτέλεσμα φαίνεται στο Σχήμα 3.2.

11
Τύποι θορύβου (7)
>> x=imread('cameraman.tif');
>> randn('state',sum(100*clock));
>> sigma=[10,30];
>> x=double(x);
>> y1=x+sigma(1)*randn(size(x));
>> y2=x+sigma(2)*randn(size(x));
>> imshow(y1,[])
>> figure;
>> imshow(y2,[])

Σχήμα 3.2 Εικόνα με προσθετικό


Gaussian θόρυβο σ=10 και σ=30 (AWGN-
Additive White Gaussian Noise).

12

Φίλτρο αριθμητικής μέσης τιμής (1)


• Το φίλτρο αυτό είναι το ίδιο με εκείνο του
προηγούμενου κεφαλαίου για τον
εμπλουτισμό εικόνας και βασίζεται στη
σχέση:
• Όπου g(x,y) είναι η εικόνα με θόρυβο,
f(x,y) είναι η έξοδος του φίλτρου και Αxy
είναι η μάσκα διαστάσεων m×n. Η
αριθμητική μέση τιμή προκαλεί την
εξομάλυνση μιας περιοχής και η αίσθηση
μείωσης του θορύβου προκαλείται από το
θολό αποτέλεσμα στην περιοχή (blurring).
Το Σχήμα 3.3 δείχνει το αποτέλεσμα ενός
τέτοιου φίλτρου 7×7 στην προηγούμενη
εικόνα, η οποία έχει Gaussian θόρυβο με
σ=30.
13
Φίλτρο αριθμητικής μέσης τιμής (2)
>> x=imread('cameraman.tif');
>> x=double(x);
>> sigma=30;
>> y=x+sigma*randn(size(x));
>> mask=fspecial('average',[7 7]);
>> z=imfilter(y,mask,'symmetric');
>> imshow(z,[])

Σχήμα 3.3 Φίλτρο μέσης τιμής 7×7 σε


εικόνα με AWGN και σ=30.

14

Φίλτρο γεωμετρικής μέσης τιμής (1)


• Το φίλτρο αυτό βασίζεται στη
σχέση:
• Το κάθε pixel της εικόνας με
θόρυβο αντικαθίσταται από το
γινόμενο των pixels στη γειτονιά
του, υψωμένο στη δύναμη 1/mn.
• Το Σχήμα 3.4 δείχνει το
αποτέλεσμα ενός τέτοιου
φίλτρου 7×7 στην προηγούμενη
εικόνα, η οποία έχει Gaussian
θόρυβο με σ=30. Παρατηρείται
λιγότερο blurring από το
προηγούμενο φίλτρο.

15
Φίλτρο γεωμετρικής μέσης τιμής (2)
>> x=imread('cameraman.tif');
>> x=double(x);
>> sigma=30;
>> y=x+sigma*randn(size(x));
>>z=exp(imfilter(log(y),ones(7,7),'sy
mmetric')).^(1/7/7);
>> imshow(z,[])

Σχήμα 3.3 Φίλτρο γεωμετρικής


μέσης τιμής 7×7 σε εικόνα με AWGN
και σ=30.

16

Φίλτρο μεσαίας τιμής - median (1)


• Το φίλτρο αυτό βασίζεται στη σχέση:
• Το κάθε pixel της εικόνας με θόρυβο
αντικαθίσταται από τη μεσαία τιμή
των pixels στη γειτονιά του. Η αρχική
τιμή του περιλαμβάνεται σε αυτόν
τον υπολογισμό. Αυτός ο τύπος
φίλτρου είναι ιδιαίτερα
αποτελεσματικός στην απομάκρυνση
θορύβου τύπου “salt & pepper”. Η
συνάρτηση η οποία υλοποιεί αυτόν
τον τύπο φίλτρου στο Matlab είναι η
medfilt2, όπως αυτή περιγράφεται
στο τέλος του προηγούμενου
κεφαλαίου.

17
Φίλτρο μεσαίας τιμής - median (2)
• Το φίλτρο αυτό βασίζεται στη
σχέση:
• Φίλτρο μέγιστης τιμής (max)
• Το κάθε pixel της εικόνας με
θόρυβο αντικαθίσταται από τη
μέγιστη τιμή των pixels στη
γειτονιά του. Η αρχική τιμή του
περιλαμβάνεται σε αυτόν τον
υπολογισμό. Αυτός ο τύπος
φίλτρου αναδεικνύει τα pixels με
τη μεγαλύτερη φωτεινότητα και
συνεπώς υποβαθμίζει το θόρυβο
τύπου “pepper”.

18

Φίλτρο μεσαίας τιμής - median (3)


Η συνάρτηση η οποία υλοποιεί αυτόν τον τύπο φίλτρου στο
Matlab είναι η εξής:
• y = ordfilt2 ( x , order , mask )
• Όπου order είναι ο αριθμός του στοιχείου σε μια σειρά από
αύξουσες τιμές και mask είναι η γειτονιά του εξεταζόμενου
pixel. Στην περίπτωση του συγκεκριμένου φίλτρου η
παραπάνω συνάρτηση παίρνει την εξής μορφή:
• y = ordfilt2 ( x , m*n , ones ( m , n ) )

19
Φίλτρο μεσαίας τιμής - median (4)
• Φίλτρο ελάχιστης τιμής (min)
• Το φίλτρο αυτό βασίζεται στη σχέση:
• Το κάθε pixel της εικόνας με θόρυβο
αντικαθίσταται από την ελάχιστη τιμή των
pixels στη γειτονιά του. Η αρχική τιμή του
περιλαμβάνεται σε αυτόν τον
υπολογισμό. Αυτός ο τύπος φίλτρου
αναδεικνύει τα pixels με τη μικρότερη
φωτεινότητα και συνεπώς υποβαθμίζει το
θόρυβο τύπου “salt”. Η συνάρτηση η
οποία υλοποιεί αυτόν τον τύπο φίλτρου
στο Matlab είναι η εξής:
• y = ordfilt2 ( x , 1 , ones ( m , n ) )

20

Φίλτρο μεσαίας τιμής - median (5)


• Το Σχήμα 3.4 δείχνει το αποτέλεσμα εφαρμογής των φίλτρων
αριθμητικής μέσης τιμής, γεωμετρικής μέσης τιμής, median,
max και min σε μια εικόνα η οποία έχει θόρυβο “salt &
pepper” (d=0.2). Το Σχήμα 3.5 δείχνει την απόδοση των ίδιων
φίλτρων σε εικόνα η οποία έχει θόρυβο AWGN. Η μάσκα που
έχει χρησιμοποιηθεί για όλες τις υλοποιήσεις είναι 3Χ3.
• Παρατηρούμε την πολύ καλή απόδοση του φίλτρου median
στην αποκατάσταση της εικόνας από θόρυβο τύπου ‘salt &
pepper’ και τη μέτρια απόδοση όλων των φίλτρων στην
εικόνα με θόρυβο τύπου Gaussian (σ=30).

21
Παράδειγμα (1)

Σχήμα 3.4 (α) Εικόνα με


θόρυβο ‘salt & pepper’
(d=0.2). (β) Φίλτρο αριθμ.
μέσης τιμής. (γ) Φίλτρο
γεωμετρικής μέσης τιμής. (δ)
Φίλτρο median. (ε) Φίλτρο
max. (στ) Φίλτρο min.

22

Παράδειγμα (2)

Σχήμα 3.5 (α) Εικόνα με


θόρυβο Gaussian (σ=30). (β)
Φίλτρο αριθμ. μέσης τιμής.
(γ) Φίλτρο γεωμετρικής
μέσης τιμής. (δ) Φίλτρο
median. (ε) Φίλτρο max. (στ)
Φίλτρο min.

23
Φίλτρο ενδιάμεσου σημείου (1)
• Το φίλτρο ενδιάμεσου σημείου υπολογίζει την ενδιάμεση τιμή μεταξύ ελαχίστου
και μεγίστου στην περιοχή της μάσκας και τοποθετεί το αποτέλεσμα στη θέση του
εξεταζόμενου στοιχείου της περιοχής. Η σχέση η οποία διέπει τη λειτουργία αυτού
του φίλτρου είναι:

24

Φίλτρο ενδιάμεσου σημείου (2)


(α) Εικόνα με θόρυβο Gaussian
(σ=20). (β) Φίλτρο μέγιστης τιμής.
(γ) Φίλτρο ελάχιστης τιμής.(δ)
Φίλτρο ενδιάμεσου σημείου.

25
Φίλτρο ρυθμιζόμενης μέσης τιμής (1)

Alpha –trimmed mean filter

26

Φίλτρο ρυθμιζόμενης μέσης τιμής (2)

Χρήση φίλτρου

27
Φίλτρο ρυθμιζόμενης μέσης τιμής (3)

Μάσκα 3 x 3 και k = 5

28

Προσαρμοζόμενo φίλτρο τοπικού


θορύβου(1)
• Τα φίλτρα που έχουν αναφερθεί λειτουργούν επαναληπτικά σε μια περιοχή της
εικόνας η οποία καλείται μάσκα, με ένα προκαθορισμένο τρόπο χωρίς να
λαμβάνουν υπ’ όψη τα χαρακτηριστικά κάθε περιοχής, που είναι ο θόρυβος ( n2 ),
η μέση τιμή φωτεινότητας της περιοχής και η ενέργεια στην περιοχή ( S2 ). Εάν
υποτεθεί ότι είναι γνωστός ο θόρυβος σε μια εικόνα, τότε ένα προσαρμοζόμενο
φίλτρο το οποίο λειτουργεί επαναληπτικά σε περιοχές Sxy μπορεί να έχει την
μορφή:
2
I ' ( x, y )  I ( x, y )  n2 I ( x, y )   S  (3.7)
S

29
Προσαρμοζόμενo φίλτρο τοπικού
θορύβου(2)
• Όπου I’(x,y) είναι η τιμή του κεντρικού pixel της μάσκας ή της περιοχής Sxy μετά
την εφαρμογή της σχέσης (3.7), I(x,y) είναι η αρχική τιμή του pixel,  S2 o θόρυβος
στην εικόνα,  n2 η ενέργεια στην περιοχή και μS η μέση τιμή της περιοχής.
• Εάν δεν υπάρχει θόρυβος, τότε I’(x,y)=I(x,y).
• Εάν ο θόρυβος είναι μικρός σε σχέση με την ενέργεια της περιοχής (δηλαδή  n2
<<  S2 ), τότε I’(x,y)=I(x,y).
• Εάν ο θόρυβος είναι ίσος με την ενέργεια της περιοχής, τότε I’(x,y)= μS , το οποίο
σημαίνει την εφαρμογή φίλτρου αριθμητικής μέσης τιμής.
• Εάν ο θόρυβος είναι πολύ μεγαλύτερος (μπορεί να τεθούν τιμές κατωφλίου για
τις ανισότητες), τότε για την αποφυγή αρνητικών τιμών θεωρούμε την
προηγούμενη περίπτωση της ισότητας, οπότε εφαρμόζεται πάλι φίλτρο
αριθμητικής μέσης τιμής. Εναλλακτικά μπορούμε να υπολογίσουμε τις
αρνητικές τιμές που προκύπτουν από τη σχέση (3.7) και στο τέλος να
επαναφέρουμε την κλίμακα [0 255] (rescaling).

30

Προσαρμοζόμενο φίλτρο μεσαίας τιμής (1)

Adaptive median filter

31
Προσαρμοζόμενο φίλτρο μεσαίας τιμής
(2)

32

Προσαρμοζόμενο φίλτρο μεσαίας


τιμής (3)

Απαλοιφή θορύβου

33
Ενότητα 4 : Δειγματοληψία και κβάντιση
(Sampling and Quantization)

Σκοποί ενότητας
• Σκοπός αυτής της ενότητας είναι να δείξει τον
τρόπο και τη σημασία της κβαντοποίησης
ενός σήματος ή μιας εικόνας.

4
Περιεχόμενα ενότητας
 Δειγματοληψία μονοδιάστατου σήματος
 Δειγματοληψία δισδιάστατου σήματος
 Ιδανικό φίλτρο
 Κβάντιση
 Ομοιόμορφος κβαντιστής
 Βέλτιστος κβαντιστής ελάχιστου μέσου τετραγωνικού σφάλματος
 Συμπεράσματα
 Dithering
 Halftoning

Δειγματοληψία μονοδιάστατου
σήματος
Δειγματοληψία
μονοδιάστατου σήματος:
αs(t)=α(t)s(t)

Σχήμα 4.1 Δειγματοληψία


αναλογικού σήματος

6
Δειγματοληψία δισδιάστατου σήματος (1)

Σχήμα 4.2 (α) Δειγματοληψία


δισδιάστατου σήματος. (β) Fourier
αρχικού σήματος. (γ) Fourier
δειγματοληπτημένου σήματος.

fxs=1/Δx και fys=1/Δy

Περιοδική επανάληψη φάσματος


αρχικού σήματος
Συνθήκη μη επικάλυψης
fxs>2fxmax και fys>2fymax (4.1)
ή
Δx<1/2fxmax και Δy<1/2fymax (4.2)

Ιδανικό Φίλτρο (1)


• Για να μην υπάρχει
επικάλυψη στο πεδίο των
συχνοτήτων πρέπει το αρχικό
σήμα, πριν το δειγματολήπτη,
να περιοριστεί με ένα φίλτρο
το οποίο καλείται φίλτρο
αντι-επικάλυψης (anti-
aliasing filter) και το οποίο
έχει συχνότητες αποκοπής
(fxs/2 , fys/2).
• Το ιδανικό φίλτρο θα έχει
την εξής απόκριση:

Σχήμα 4.3 (α) Ιδανικό φίλτρο


με εύρος 2fxmax (β) Χρονική
απόκριση

8
Ιδανικό Φίλτρο (2)
• Το ανακατασκευασμένο σήμα με τη
βοήθεια του ιδανικού φίλτρου θα είναι:
• Η ανακατασκευή του αρχικού σήματος
πραγματοποιείται με παρεμβολή
(interpolation) απείρων σημείων. Επειδή
πρακτικά ο αριθμός των σημείων για την
ανακατασκευή είναι πεπερασμένος,
συνήθως χρησιμοποιούνται φίλτρα των
οποίων η χρονική απόκριση έχει
πεπερασμένη διάρκεια ή να φθίνει
γρήγορα, Σχήμα 4.4.
• Το εύρος του κύριου λοβού συναρτάται
με την απώλεια ανάλυσης (resolution
loss). Όσο πιο στενός είναι ο λοβός τόσο
μεγαλύτερη είναι η απώλεια ανάλυσης
δηλαδή μεγαλύτερη η εξασθένηση των
υψηλών συχνοτήτων. Αυτό στην εικόνα
γίνεται αντιληπτό σαν οξύτητα
απεικόνισης.
9

Ιδανικό Φίλτρο (3)


• Η τετραγωνική απόκριση έχει την μικρότερη απώλεια ανάλυσης. Το
εμβαδόν των παράπλευρων λοβών συναρτάται με το σφάλμα απόδοσης
(interpolation error). Όσο μεγαλύτερο είναι το εμβαδόν τους, τόσο
μεγαλύτερο είναι το σφάλμα απόδοσης. Αυτό στην εικόνα γίνεται
αντιληπτό σαν συνεχής τονική μεταβολή (smoothing). Η τετραγωνική
απόκριση έχει το μεγαλύτερο σφάλμα.
• Η τριγωνική απόκριση (φίλτρο First Order Hold) είναι μια ικανοποιητική
μέθοδος ανακατασκευής του αρχικού σήματος, γιατί προσφέρει
εξισορρόπηση μεταξύ αυτών των δυο μεγεθών.

10
Ιδανικό Φίλτρο (4)
Σχήμα 4.4

(α) Φίλτρο με χρονική


απόκριση τετραγωνική
κυματομορφή

(β) Φίλτρο με χρονική


απόκριση τριγωνική
κυματομορφή

(γ) Φίλτρο με χρονική


απόκριση πολυωνυμική
κυματομορφή

11

Κβάντιση (1)
Το αναλογικό σήμα μετατρέπεται μέσω
του δειγματολήπτη σε ένα αναλογικά
μεταβαλλόμενο διακριτό σήμα, το οποίο
με τη σειρά του μπορεί να μετατραπεί σε
διακριτό ή ψηφιακό σήμα μέσω του
κβαντιστή. Ο κβαντιστής είναι η διάταξη
εκείνη η οποία αντιστοιχίζει τις τιμές του
δειγματοληπτούμενου σήματος σε
διακριτές στάθμες, Σχήμα 4.5. Εάν το
σήμα εισόδου είναι μεταξύ των σταθμών
ti και ti+1, τα οποία καλούνται μεταβατικές
στάθμες (transition levels), η έξοδος του
κβαντιστή είναι η στάθμη ri, η οποία
καλείται στάθμη ανακατασκευής
(reconstruction level).

Σχήμα 4.5 Διαδικασία κβάντιση


12
Κβάντιση (2)
Σχήμα 4.6 Ομοιόμορφος
κβαντιστής και σφάλμα
κβάντισης

13

Ομοιόμορφος κβαντιστής
-Uniform quantizer (1)
• (4.4)
• Το βήμα κβάντισης (quantization
step), q, εξαρτάται από το εύρος
μεταβολής του σήματος εισόδου.
Ο κβαντιστής δημιουργεί ένα
σήμα σταθμών οι οποίες
εμπεριέχουν το σφάλμα
κβάντισης, με αποτέλεσμα το
σήμα εισόδου να μην μπορεί να
αναπαραχθεί. Σαν μέτρο
επίδοσης ενόc κβαντιστή,
δηλαδή ένας κβαντιστής με μικρό
σφάλμα κβάντισης, λαμβάνεται ο
λόγος μέσης τιμής ισχύων
σήματος και θορύβου κβάντισης.
14
Ομοιόμορφος κβαντιστής
-Uniform quantizer (2)
• O ομοιόμορφος κβαντιστής, ο οποίος
χρησιμοποιείται συχνότατα στην
ψηφιακή επεξεργασία εικόνας για
την απλότητά του, έχει σταθερό
βήμα κβάντισης.
• Το βήμα κβάντισης είναι (4.5) :
όπου Ν ο συνολικός αριθμός
σταθμών του κβαντιστή.

• Εάν η συνάρτηση κατανομής


πιθανότητας ( probability distribution
function ή pdf ) του σήματος εισόδου
είναι as (x) : ps (x)
• (4.6)

15

Ομοιόμορφος κβαντιστής
-Uniform quantizer (3)

Συνάρτηση 4.7 - Παράδειγμα 4.1.

16
Ομοιόμορφος κβαντιστής
-Uniform quantizer (4)

Παράδειγμα 4.2 - Λύση

17

Ομοιόμορφος κβαντιστής
-Uniform quantizer (5)

Παρατηρήσεις
1. Ένας ομοιόμορφος κβαντιστής έχει απόδοση 6 dB ανά bit για ομοιόμορφη
κατανομή του σήματος εισόδου.
2. Όσο περισσότερες στάθμες έχει ο ομοιόμορφος κβαντιστής τόσο καλύτερη
απόδοση έχει.
3. Για χαμηλής στάθμης σήματα εισόδου ο θόρυβος είναι ίδιος όπως και για
μεγάλης στάθμης σήματα. Γι αυτό το λόγο δημιουργούνται οι μη γραμμικοί
κβαντιστές (compandors=compressor και expandor) οι οποίοι έχουν
περισσότερες στάθμες κβάντισης για τα χαμηλής στάθμης σήματα, άρα και
μικρότερο θόρυβο. Η καμπύλη ενός τέτοιου κβαντιστή δείχνεται στην επόμενη
διαφάνεια.
18
Ομοιόμορφος κβαντιστής
-Uniform quantizer (6)

Σχήμα 4.7
Μη γραμμικός κβαντιστής.
(α) Compressor. (β)
Expandor.

(α) (β)

19

Ομοιόμορφος κβαντιστής
-Uniform quantizer (7)
Παράδειγμα 4.3
• Ο ομοιόμορφος κβαντιστής είναι σταθερού ρυθμού
μετάδοσης, δηλαδή κάθε pixel κβαντίζεται με τον ίδιο
αριθμό bits. Είναι δυνατή η κβάντιση ενός μέρους των
δειγμάτων εισόδου με περισσότερα bits/pixel και του
άλλου μέρους με λιγότερα bits/pixel, έτσι ώστε κατά μέσον
όρο να έχουμε τον ίδιο αριθμό bits/pixel. Ο ομοιόμορφος
κβαντιστής αυτού του τύπου καλείται κβαντιστής
μεταβλητού ρυθμού μετάδοσης και παρουσιάζει μικρότερη
παραμόρφωση.
• Στο παράδειγμα 4.3 δημιουργείται μια είσοδος 1000
τυχαίων δειγμάτων στην περιοχή [0,1] και κβαντίζονται με
ένα ομοιόμορφο κβαντιστή με 2 bits/pixel. Στη συνέχεια, η
είσοδος χωρίζεται σε δυο περιοχές 500 δειγμάτων από τις
οποίες η μια κβαντίζεται με 3 bits/pixel και η άλλη με 1
bit/pixel (μέσος όρος 2 bits/pixel ). Από τον υπολογισμό του
SNR (λόγος σήμα προς θόρυβο ή παραμόρφωση) φαίνεται
ότι ο κβαντιστής μεταβλητού ρυθμού έχει καλύτερη
απόδοση. 20
Ομοιόμορφος κβαντιστής
-Uniform quantizer (8)
• Όπου ο αριθμητής είναι η ισχύς του σήματος εισόδου και ο παρανομαστής το
μέσο τετραγωνικό σφάλμα κβάντισης (mse-mean square error).
Παρατηρήσεις
• Στο Matlab, ο αριθμητής μπορεί να υπολογιστεί και με τη συνάρτηση cov(x)
(διασπορά ή variance).
• Για την καλύτερη απόδοση του κβαντιστή μεταβλητού ρυθμού μετάδοσης, τα
περισσότερα bits πρέπει να διατίθενται σε εκείνη την περιοχή όπου το σήμα
εισόδου έχει μεγαλύτερη ενέργεια. Έτσι, η περιοχή με τις μεγαλύτερες τιμές
φωτεινότητας θα κβαντίζονται με περισσότερα επίπεδα και θα δίνουν μικρότερη
παραμόρφωση.
• Στην περίπτωση του παραδείγματος, η περιοχή [0,median] κβαντίζεται με 3
bits/pixel ενώ η περιοχή [median,1] με 1 bit/pixel. Για να υπάρχει καλύτερη
απόδοση πρέπει η ενέργεια της πρώτης περιοχής να είναι μεγαλύτερη από την
ενέργεια της δεύτερης περιοχής ώστε να ελαχιστοποιείται το σφάλμα κβάντισης.

21

Ομοιόμορφος κβαντιστής
-Uniform quantizer (9)

22
Βέλτιστος κβαντιστής ελαχίστου μέσου
τετραγωνικού σφάλματος (1)
Παρατηρήσεις
• Οι στάθμες μετάβασης είναι στη μέση
των σταθμών ανακατασκευής.
• Οι στάθμες ανακατασκευής είναι στο
κέντρο βάρους της κατανομής μεταξύ των
σταθμών μετάβασης.
• Οι βέλτιστες τιμές των tk , rk , για
κατανομές Gaussian και Laplacian, οι
οποίες είναι πολύ συνηθισμένες στην
ψηφιακή επεξεργασία εικόνας, δίνονται
από πίνακες. Μια άλλη μέθοδος είναι ο
επαναληπτικός προσδιορισμός των
επιπέδων κβάντισης έτσι ώστε να
προκύπτει κάθε φορά μικρότερη
παραμόρφωση.
• Για σήμα εισόδου με ομοιόμορφη
κατανομή, ο βέλτιστος κβαντιστής Lloyd-
Max γίνεται ομοιόμορφος κβαντιστής.

23

Βέλτιστος κβαντιστής ελαχίστου μέσου


τετραγωνικού σφάλματος (2)
Παράδειγμα 4.4
• Η επαναληπτική μέθοδος υλοποίησης του βέλτιστου κβαντιστή Lloyd-Max
βασίζεται στις προηγούμενες παρατηρήσεις:
1. Τα επίπεδα μετάβασης tk ευρίσκονται στο μέσον των επιπέδων ανακατασκευής (rk-
1 , rk).

2. Τα επίπεδα ανακατασκευής rk ευρίσκονται στο κέντρο βάρους (μέση τιμή) των


δειγμάτων κάθε υποπεριοχής.
• Ο αλγόριθμος ξεκινάει με ένα ομοιόμορφο κβαντιστή και ρυθμίζει κάθε φορά τα
επίπεδα σύμφωνα με τα παραπάνω. Στο παράδειγμα δημιουργείται μια είσοδος
δειγμάτων με ομοιόμορφη κατανομή και εφαρμόζεται η συνάρτηση:
lloyd_max ( x , a , b , N , k )
• Όπου x η είσοδος, [a,b] η περιοχή της κατανομής των δειγμάτων εισόδου, Ν ο
αριθμός των επιπέδων κβάντισης και k ο αριθμός των επαναλήψεων. Θέτουμε
[a,b]=[0,1], Ν=4 και k=10.
24
Βέλτιστος κβαντιστής ελαχίστου μέσου
τετραγωνικού σφάλματος (3)

Οι μέσες τιμές που υπολογίζονται από τα δείγματα σε κάθε υποδιάστημα κβάντισης


(Μ1, Μ2, Μ3, Μ4) είναι τα επίπεδα ανακατασκευής rk. Η παραμόρφωση που
δημιουργείται από την κβάντιση των δειγμάτων κάθε υποδιαστήματος υπολογίζεται
σε σχέση με αυτές τις μέσες τιμές. Η μέση τιμή δυο διαδοχικών μέσων τιμών
παρέχει το αντίστοιχο επίπεδο μετάβασης tk. Για παράδειγμα το t2 υπολογίζεται ως:
1/2(Μ1+Μ2). Το πρώτο και το τελευταίο επίπεδα μετάβασης δεν αλλάζουν.

25

Βέλτιστος κβαντιστής ελαχίστου μέσου


τετραγωνικού σφάλματος (4)
Εάν δημιουργήσουμε μια ομοιόμορφη κατανομή και
εφαρμόσουμε την παραπάνω συνάρτηση, προκύπτουν τα
παρακάτω αποτελέσματα:
SNR t2 t3 t4 >> u=rand(1,100000);
12.2012 0.2253 0.4943 0.7465 >> x=u.^2;
12.4297 0.2131 0.4840 0.7433
>> lloyd_max(x,0,1,4,10);
12.5239 0.2054 0.4748 0.7389
12.5844 0.1996 0.4668 0.7343
12.6224 0.1955 0.4604 0.7300
12.6508 0.1920 0.4548 0.7258
12.6724 0.1890 0.4499 0.7222
12.6865 0.1866 0.4461 0.7194
12.6971 0.1845 0.4427 0.7169
12.7050 0.1828 0.4398 0.7147

26
Βέλτιστος κβαντιστής ελαχίστου μέσου
τετραγωνικού σφάλματος (5)

Παρατηρούμε ότι σε κάθε επανάληψη το SNR


γίνεται μεγαλύτερο και ταυτόχρονα τα επίπεδα
κβάντισης μεταβάλλονται. Αυτή η διαδικασία
επαναλαμβάνεται είτε για σταθερό αριθμό
επαναλήψεων ή μέχρις ότου δεν υπάρχει
περαιτέρω βελτίωση του SNR.

27

Βέλτιστος κβαντιστής ελαχίστου μέσου


τετραγωνικού σφάλματος (6)

Η συνάρτηση με την
οποία πραγματοποιήθηκε
το παραπάνω παράδειγμα
είναι η ακόλουθη.

28
Συμπεράσματα (1)
Η απόδοση των κβαντοποιητών,
για κατανομή Gaussian, δίνεται
από το Σχήμα 4.8.

•Ο κβαντιστής Lloyd-Max έχει


καλύτερη απόδοση από τον
βέλτιστο ομοιόμορφο
κβαντιστή.
• Ο ελάχιστος αριθμός bits που
απαιτούνται για μια μεταβλητή
με κατανομή Gaussian
1 2
είναι: 2 D , όπου το
Bs  log 2

καλείται όριο Shannon

29

Συμπεράσματα (2)
• Στις μονοχρωματικές εικόνες χρησιμοποιούνται συνήθως ομοιόμορφοι
κβαντιστές των 8 bits/pixel δηλαδή 256 αποχρώσεις του γκρι. Το pixel
αντιπροσωπεύει τη φωτεινότητα. Σε αυτή την περίπτωση εάν η κβάντιση γίνει με
6 bits τότε παρατηρούνται περιοχές σταθερής απόχρωσης του γκρί και μεταξύ
τους δημιουργούνται τα περιγράμματα (contours).
• Εάν η κβάντιση γίνει ως προς την αντίθεση (contrast), τότε απαιτούνται περίπου
6 bits για την μη εμφάνιση contours.
• Αποφυγή των contours μπορεί να γίνει εάν στο σήμα προστεθεί ομοιόμορφος
θόρυβος, dither, πριν τον κβαντιστή για να υπερβεί το κατώφλι απόφασης και
αργότερα αφαιρεθεί για να προκύψει το αρχικό σήμα.
• Ανάλογη με την προηγούμενη μέθοδο είναι και αυτή της δημιουργίας εικόνων
μισού τόνου (halftone images) όπου το κάθε pixel φωτεινότητας του σήματος
συνδυάζεται με ένα τυχαίο αριθμό και η τιμή αυτή κβαντίζεται έτσι ώστε να
προκύψει ένα δυαδικό αρχείο (κβαντιστής 1 bit ).

30
Dithering (1)
• Εάν μια εικόνα κβαντιστεί με μικρό αριθμό επιπέδων, προκαλείται το φαινόμενο
των περιγραμμάτων (contouring), το οποίο οφείλεται στο γεγονός ότι περιοχές με
μικρή μεταβολή φωτεινότητας αποκτούν την ίδια τιμή μετά την κβάντιση. Το
Σχήμα 4.9 δείχνει μια εικόνα η οποία έχει κβαντιστεί με 3 bits ή με 7 επίπεδα.
• Το φαινόμενο αυτό αρχίζει να παρουσιάζεται όταν η κβάντιση μιας εικόνας
γίνεται με λιγότερα από 6 bits. Μια μέθοδος η οποία χρησιμοποιείται για να
αποφευχθεί το φαινόμενο αυτό είναι τεχνική dithering. Σύμφωνα με την τεχνική
αυτή, στην αρχική εικόνα προστίθεται θόρυβος (dither) με ομοιόμορφη
κατανομή. Η εικόνα που προκύπτει κβαντίζεται με μικρότερο αριθμό bits και στη
συνέχεια ο αρχικός θόρυβος αφαιρείται, για να προκύψει η τελική εικόνα στην
οποία έχει ελαττωθεί το φαινόμενο των περιγραμμάτων. Το Σχήμα 4.10 δείχνει
την εφαρμογή αυτής της τεχνικής στην προηγούμενη εικόνα. Ο θόρυβος που
προστίθεται έχει ομοιόμορφη κατανομή στην περιοχή [-16,16].

31

Dithering (2)
Σχήμα 4.9 Αρχική εικόνα
και εικόνα μετά από
κβάντιση με 3 bits.

32
Dithering (3)

33

Dithering (4)
Σχήμα 4.10
(α) Eικόνα μετά από κβάντιση
με 3 bits.

(β) Εικόνα μετά την τεχνική


dithering.

34
Halftoning (1)
• Μια δυαδική εικόνα, η οποία αποτελείται από μεγάλο αριθμό άσπρων και
μαύρων pixels, δίνει την εντύπωση ότι περιέχει και γκρι αποχρώσεις επειδή το
ανθρώπινο μάτι πραγματοποιεί ολοκλήρωση μικρών περιοχών της εικόνας. Η
τεχνική με την οποία μια εικόνα μετατρέπεται σε δυαδική εικόνα με την
παραπάνω ιδιότητα καλείται halftoning. Η δυαδική εικόνα που προκύπτει με αυτή
την τεχνική έχει πολύ μικρότερη ανάλυση για το ίδιο μέγεθος. Ο συνηθισμένος
τρόπος δημιουργίας μιας τέτοιας δυαδικής εικόνας είναι η εφαρμογή γενικού ή
τοπικού κατωφλίου δηλαδή η κβάντιση με 1 bit.
• Για παράδειγμα η εικόνα “woman”, η οποία έχει διαστάσεις 256Χ256,
υπερδειγματοληπτείται σε εικόνα 512Χ512. Σε αυτήν προστίθεται ένας πίνακας
512Χ512, ο οποίος καλείται halftone screen, με δομή τέτοια ώστε να μην
προκαλεί περιοδικότητα. Η εικόνα που προκύπτει κβαντίζεται με ένα κβαντιστή 1
bit. Το Σχήμα 4.11 δείχνει την εικόνα εξόδου, η οποία είναι δυαδική εικόνα αλλά
δίνει την αίσθηση ότι περιέχει γκρι αποχρώσεις.

35

Halftoning (2)
Μια άλλη τεχνική είναι η
δημιουργία δυαδικών fonts
(π.χ. 2Χ2), τα οποία
αντικαθιστούν κάθε pixel της
αρχικής εικόνας με κάποιο
κριτήριο. Για να προκύψει
τελική εικόνα με τις
επιθυμητές διαστάσεις
πρέπει η αρχική εικόνα να
υποδειγματοληπτηθεί. Ο
αριθμός των δυαδικών fonts
εξαρτάται από τον επιθυμητό
αριθμό των αποχρώσεων του
γκρι που θα έχει η τελική
εικόνα.

36
Halftoning (3)
Σχήμα 4.11 (α) Αρχική εικόνα
256Χ256. (β) Εικόνα 512Χ512
με υπερδειγματοληψία.(γ)
Εικόνα 512Χ512 μετά την
τεχνική halftoning. (δ)
Δυαδική εικόνα με επίπεδο
κατωφλίου το 128.

37

Ενότητα 5 : Μετασχηματισμοί εικόνας


Σκοποί ενότητας
• Η ενότητα αυτή εξετάζει τους
μετασχηματισμούς των εικόνων Fourier, DCT
και κυματιδίων και τις βασικές τους
εφαρμογές.

Περιεχόμενα ενότητας
 Μετασχηματισμός Fourier
 Εφαρμογές Μετασχηματισμού Fourier
 Μετασχηματισμός DCT
 Εφαρμογή του DCT στο πρότυπο συμπίεσης JPEG
 Μετασχηματισμός κυματιδίων
 Εφαρμογή του DWT στη συμπίεση εικόνων
 Εφαρμογή του DWT στην απαλοιφή θορύβου

5
Μετασχηματισμός Fourier (1)

• όπου k=0,1,2,…,M-1 και l=0,1,2,…,N-1 για μια εικόνα f(m,n) διαστάσεων Μ×Ν.
• Ο διακριτός μετασχηματισμός Fourier είναι ο διακριτός τρόπος απεικόνισης
μιας εικόνας στο πεδίο των συχνοτήτων.
• Οι τιμές F(k,l) είναι οι συντελεστές του μετασχηματισμού DFT, ενώ οι εκθετικοί
όροι είναι πίνακες μετασχηματισμού.
• Η συνεχής συνιστώσα είναι η F(0,0), όμως στο Matlab είναι η F(1,1).
• Η συνάρτηση για DFT μιας εικόνας είναι η fft2, ενώ για IDFT είναι η ifft2.

Μετασχηματισμός Fourier (2)


Παράδειγμα 5.1
• Με το ακόλουθο Η απεικόνιση του μέτρου του
πρόγραμμα δημιουργείται μετασχηματισμού DFT και του
μια εικόνα, η οποία είναι λογαρίθμου του μέτρου
ένας τετραγωνικός παλμός δίνουν διαφορετικές εκδοχές:
στις δύο διαστάσεις.

7
Μετασχηματισμός Fourier (3)
Οι οριζόντιες συχνότητες έχουν λοβούς μεγαλύτερου
πλάτους από τις κάθετες συχνότητες γιατί οι
τετραγωνικοί παλμοί που ορίζονται από τα οριζόντια
επίπεδα έχουν μικρότερο εύρος. Οι παλμοί μικρού
εύρους έχουν περισσότερες υψηλές συχνότητες από
τους παλμούς με μεγαλύτερο εύρος. Παρακάτω δίνεται
το πρόγραμμα με το οποίο γίνεται η απεικόνιση του
πεδίου μετασχηματισμού. Εάν η αρχική εικόνα
συμπληρωθεί με μηδενικά (zero padding) και η DC
συνιστώσα ολισθήσει στο κέντρο του μετασχηματισμού,
τότε η απεικόνιση πλησιάζει το συνεχή μετασχηματισμό.
>> F=fft2(x,256,256);
>> F2=fftshift(F);
>> imshow(log(abs(F2)),[-1 5],’notruesize’);
>> colormap(jet);
>> colorbar;
8

Εφαρμογές μετασχηματισμού Fourier (1)


Απόκριση συχνότητας γραμμικών >> Hd=zeros(16,16);
φίλτρων
>> Hd(5:12,5:12)=1;
Η απεικόνιση στο πεδίο συχνοτήτων, δηλαδή
ο μετασχηματισμός Fourier, της κρουστικής >> Hd(7:10,7:10)=0;
απόκρισης ενός γραμμικού φίλτρου καλείται >> h=fwind1(Hd,bartlett(16));
απόκριση συχνότητας. Στο Matlab, η
συνάρτηση freqz2 υπολογίζει και απεικονίζει >> freqz2(h,[32,32]);
την απόκριση συχνότητας ενός φίλτρου. Στο >> axis([-1 1 -1 1 0 1]);
παράδειγμα δημιουργείται ένα δισδιάστατο
φίλτρο FIR 16×16 (φίλτρο h), με επιθυμητή >> colormap(jet(64));
απόκριση Hd. Το φίλτρο δημιουργείται με τη
συνάρτηση fwind1 χρησιμοποιώντας και στις
δύο διαστάσεις το 1-D παράθυρο τύπου
Bartlett. Στη συνέχεια υπολογίζεται και
απεικονίζεται η απόκριση συχνότητάς του με
τη συνάρτηση freqz2.
9
Εφαρμογές μετασχηματισμού Fourier (2)

Σχήμα 5.1 (α) Επιθυμητή


απόκριση συχνότητας. (β)
Πραγματική απόκριση
συχνότητας.

10

Εφαρμογές μετασχηματισμού Fourier (3)


Ταχεία εύρεση συνέλιξης >> A=[1 2 3;4 5 6;7 8 9];
• Η συνέλιξη δύο πινάκων (συνήθως >> B=ones(3);
μεγάλων διαστάσεων) ευρίσκεται
>> A(8,8)=0 ;%zero pad A
γρήγορα με το γινόμενο των DFT των
δύο πινάκων. Το παράδειγμα δείχνει >> B(8,8)=0; %zero pad B
τον τρόπο χρήσης που δίνει το ίδιο
>> C=ifft2(fft2(A).*fft2(B));
αποτέλεσμα με τη συνάρτηση conv2.
>> C=C(1:5,1:5); %non zero part
C=
>> C=real(C); %real part
1 3 6 5 3
>> D=conv2(A,B);
5 12 21 16 9
>> D=D(1:5,1:5);
12 27 45 33 18
11 24 39 28 15
7 15 24 17 9

11
Εφαρμογές μετασχηματισμού Fourier (4)

Εντοπισμός χαρακτηριστικών εικόνας


• Η συσχέτιση (correlation) δύο συναρτήσεων f(x,y) και g(x,y) ορίζεται
ως εξής:

• Δηλαδή το άθροισμα γινομένων με τη μια συνάρτηση μετατοπισμένη.


Εάν θέσουμε x’=-x και y’=-y και με δεδομένο ότι:

12

Εφαρμογές μετασχηματισμού Fourier (5)


προκύπτει: Διαφορετικά, η συσχέτιση δυο
συναρτήσεων επιτυγχάνεται με τον
αντίστροφο DFT του γινομένου του
μετασχηματισμού της μιας συνάρτησης επί
το συζυγές μέρος του μετασχηματισμού
η οποία δίνει το f(-x,-y) x g(x,y). Αυτή
της άλλης συνάρτησης.
η σχέση δηλώνει ότι η συσχέτιση των
δύο συναρτήσεων είναι ισοδύναμη Στο παράδειγμα, έχοντας την εικόνα του
με τη συνέλιξη της μιας συνάρτησης γράμματος a ζητείται να εντοπιστούν οι
με την άλλη αφού περιστραφεί κατά θέσεις του γράμματος αυτού σε μια άλλη
180 μοίρες. Στο πεδίο συχνοτήτων: εικόνα. Η εικόνα του γράμματος
περιστρέφεται κατά 1800 και συνελίσσεται
με τη βοήθεια του DFT με την άλλη εικόνα.
Αυτό έχει σαν αποτέλεσμα να εντοπιστούν
οι θέσεις του γράμματος σαν στίγματα με
μεγαλύτερη φωτεινότητα, εάν τεθεί
κάποιο κατώφλι φωτεινότητας

13
Εφαρμογές μετασχηματισμού Fourier (6)
Σχήμα 5.2 Προσδιορισμός
θέσης γράμματος μετά
από συνέλιξη.

14

Μετασχηματισμός DCT -
Discrete Cosine Transform (1)

15
Μετασχηματισμός DCT -
Discrete Cosine Transform (2)

Το Σχήμα 5.3 δείχνει τις 64


συναρτήσεις βάσης μιας
εικόνας 8×8 pixels. Η επάνω
αριστερή συνάρτηση βάσης
είναι η DC συνιστώσα, ενώ οι
συχνότητες αυξάνονται από
αριστερά προς τα δεξιά και
από επάνω προς τα κάτω.

Σχήμα 5.3 Συναρτήσεις


βάσης του DCT για εικόνα 8×8
pixels.

16

Μετασχηματισμός DCT -
Discrete Cosine Transform (3)

Χαρακτηριστικά DTC
17
Μετασχηματισμός DCT -
Discrete Cosine Transform (4)

Πίνακας C
18

Εφαρμογή του DCT


στο πρότυπο συμπίεσης JPEG (1)

H διαδικασία
19
Εφαρμογή του DCT
στο πρότυπο συμπίεσης JPEG (2)
A=imread(‘cameraman.tif’);
A=im2double(A); %real numbers
[h,w]=size(A);
C=dctmtx(8); %DCT transform matrix
B=blkproc(A,[8 8],’P1*x*P2’,C,C’); %DCT transformation
mask=[11110000;11100000;11000000;
10000000;00000000;00000000;
00000000;00000000]; %zeroing mask
B2=blkproc(B,[8 8],’P1.*x’,mask);
A2=blkproc(B2,[8 8],’P1*x*P2’,C’,C); %inverse DCT
imshow(A,[]);
figure; imshow(A2,[]);
% PSNR estimation
im_dif=(A-A2).^2;
mse=sum(sum(im_dif))/(h*w); %mse estimation
psnr=10*log10(255*255/mse);
%display PSNR and bit rate
disp(psnr)
20

Εφαρμογή του DCT


στο πρότυπο συμπίεσης JPEG (3)

Σχήμα 5.4
(α) Αρχική εικόνα. (β)
Ανασυσταθείσα εικόνα
μετά από μετασχηματισμό
DCT και μηδενισμό του
85% των συντελεστών
μετασχηματισμού.

21
Εφαρμογή του DCT
στο πρότυπο συμπίεσης JPEG (4)
Το Σχήμα 5.4 απεικονίζει την
αρχική και την ανασυσταθείσα
εικόνα, η οποία έχει αντικειμενική
ποιότητα PSNR=73.55 dB, αν και
μόνο το 15% των συντελεστών
μετασχηματισμού
χρησιμοποιούνται. Η ποιότητα
είναι υψηλή επειδή δεν έχει
πραγματοποιηθεί κβάντιση των
συντελεστών. Η ανασυσταθείσα
εικόνα παρουσιάζει
παραμορφώσεις στα όρια των
αντικειμένων, επειδή έχουν
μηδενιστεί οι περισσότεροι
συντελεστές υψηλών συχνοτήτων.

22

Μετασχηματισμός κυματιδίων
-Wavelte Transform (1)

23
Μετασχηματισμός κυματιδίων
-Wavelte Transform (2)
• όπου αj,k και ψj,k είναι οι συντελεστές και οι συναρτήσεις ανάλυσης με wavelets,
η δε σχέση (5.7) είναι ο αντίστροφος μετασχηματισμός.
• Συμπερασματικά η συνάρτηση f(t) μπορεί για
να αντιπροσωπευθεί από αυτούς τους
συντελεστές, οι οποίοι προκύπτουν σαν εσωτερικό γινόμενο της συνάρτησης με
την ορθογώνια βάση συναρτήσεων. Αντίστροφα η επιθυμητή συνάρτηση μπορεί
να αναπαραχθεί από αυτούς τους συντελεστές και τις συναρτήσεις βάσης. Οι
συναρτήσεις βάσης ή wavelets παράγονται από μία αρχική συνάρτηση, η οποία
καλείται ‘mother wavelet’, εάν μεταβληθεί το εύρος της (scaling) και
μετατοπισθεί στο χρόνο (translation). Οι συντελεστές ανάλυσης είναι δύο
διαστάσεων, (j =μεταβολή διάρκειας ή scaling, k=χρονική μετατόπιση ή
translation), γιατί προέρχονται από ανάλογες συναρτήσεις βάσης. Έτσι ο
μετασχηματισμός αυτός έχει το πλεονέκτημα σε σύγκριση με τον Fourier, να
αναλύει ένα σήμα τόσο στο χρόνο όσο και στη συχνότητα. Μία σημαντική
δυνατότητα είναι να προσδιορίζει με ακρίβεια μία ασυνέχεια στο πεδίο του
χρόνου.

24

Μετασχηματισμός κυματιδίων
-Wavelte Transform (3)

Σχήμα 5.5 Τα διαστήματα


ορισμού των συναρτήσεων
βάσης “προσέγγισης”
(scaling) και “λεπτομέρειας”
(detail ή wavelet).

25
Μετασχηματισμός κυματιδίων
-Wavelte Transform (4)
• Στο Σχήμα 5.5 ένα σήμα μπορεί να αναλυθεί σε ένα διάστημα Vj με την βοήθεια
συναρτήσεων βάσης που μπορούν να ανήκουν σε αυτό σύμφωνα με την (5.7) ή
μπορεί να αναλυθεί με μία συνάρτηση προσέγγισης (scaling function) η οποία
ανήκει στο βασικό διάσημα V0 ή σε άλλο και με μία συνάρτηση λεπτομέρειας
(wavelet function) η οποία ανήκει στη διαφορά των διαστημάτων.
• Το Σχήμα 5.6 δίνει ένα χαρακτηριστικό αριθμητικό παράδειγμα αυτής της
προσέγγισης, στο οποίο φαίνεται πως ένα σήμα [9 7 3 5] μπορεί να
μετασχηματισθεί σε μία ομάδα συντελεστών [6 2 1 –1], η οποία αποτελείται
από μία προσέγγιση (χαμηλή συχνότητα) και τις λεπτομέρειες (υψηλή
συχνότητα). Το αρχικό σήμα μπορεί να ανακτηθεί από αυτούς τους συντελεστές
στην επιθυμητή ανάλυση, με το πλεονέκτημα όμως ότι τα μεγέθη των
συντελεστών είναι μικρότερα του αρχικού σήματος (κυρίως των συντελεστών
λεπτομέρειας) και επομένως η μετάδοση μπορεί να γίνει με λιγότερα bits. Ακόμα
η παράλειψη κάποιου συντελεστή λεπτομέρειας δεν δημιουργεί μεγάλο σφάλμα.

26

Μετασχηματισμός κυματιδίων
-Wavelte Transform (5)
Σχήμα 5.6 Αριθμητικό
παράδειγμα
μετασχηματισμού ενός
διανύσματος.

27
Μετασχηματισμός κυματιδίων
-Wavelte Transform (6)

Έτσι ένα σήμα μπορεί να


αναλυθεί σε ένα διάστημα
με την σχέση:

(5.8)

28

Μετασχηματισμός κυματιδίων
-Wavelte Transform (7)

29
Μετασχηματισμός κυματιδίων
-Wavelte Transform (8)
• Ο διακριτός μετασχηματισμός κυματιδίων χρησιμοποιεί δυαδικές τιμές
για το εύρος και τη χρονική μετατόπιση, δηλαδή j=2L και k=M2L, όπου L
είναι το επίπεδο μετασχηματισμού. Το Σχήμα 5.7 δείχνει την πρωταρχική
συνάτηση βάσης και τέσσερα wavelets, τα οποία παράγονται με
μεταβολή των παραμέτρων εύρους και μετατόπισης.
• Πρακτικά, όπως φαίνεται στο Σχήμα 5.8, επιλέγεται ένα wavelet και
υπολογίζεται ο συντελεστής ο οποίος μαζί με αυτό δείχνει πόσο κοντά
είναι στο σήμα. Όσο μεγαλύτερο μέγεθος έχει ο συντελεστής, τόσο πιο
πιστή είναι η ανάλυση του σήματος. Το ίδιο επαναλαμβάνεται με χρονική
ολίσθηση του wavlet μέχρι την κάλυψη όλου του σήματος. Τέλος το
wavelet μεταβάλλεται στο χρόνο (scaled), έτσι ώστε να δώσει
διαφορετική ανάλυση (resolution) και η διαδικασία επαναλαμβάνεται.

30

Μετασχηματισμός κυματιδίων
-Wavelte Transform (9)

Σχήμα 5.7

31
Μετασχηματισμός κυματιδίων
-Wavelte Transform (10)

Σχήμα 5.8 Διαδικασία


ανάλυσης σήματος με
μετασχηματισμό wavelet.

32

Μετασχηματισμός κυματιδίων
-Wavelte Transform (11)
• Μία άλλη θεώρηση της παραπάνω ανάλυσης είναι η θεωρία της
κωδικοποίησης ζωνών (subband coding), σύμφωνα με την οποία το σήμα
περνά μέσα από διαδοχικά ζευγάρια φίλτρων (φίλτρα ανάλυσης), τα
οποία παράγουν τους συντελεστές ανάλυσης. Αυτοί με τη σειρά τους στο
δέκτη μπορούν να αναπαράγουν το αρχικό σήμα εάν περάσουν από
διαδοχικά ζευγάρια φίλτρων (φίλτρα σύνθεσης), τα οποία πρέπει να
έχουν ειδική σχέση με τα φίλτρα ανάλυσης έτσι ώστε το αρχικό σήμα να
αναπαράγεται χωρίς απώλεια των χαρακτηριστικών του.

33
Μετασχηματισμός κυματιδίων
-Wavelte Transform (12)
• Το σύνολο αυτών των φίλτρων λέγεται τέλειο σύστημα φίλτρων
ανασύνθεσης ή PRB (Perfect Reconstruction Bank) και βασική τους
ιδιότητα είναι ότι είναι μεταξύ τους ορθογώνια. Η ορθογώνια
συνθήκη, η οποία τέθηκε και στην προηγούμενη ανάλυση, πρέπει να
διέπει το μετασχηματισμό έτσι ώστε η ενέργεια του αρχικού σήματος
να είναι ίδια με την ενέργεια των παραγομένων συντελεστών
(Θεώρημα Parseval). Το Σχήμα 5.9(α) δείχνει τη μέθοδο ανάλυσης ενός
σήματος με τη θεωρία των ζωνών. Τα φίλτρα χαμηλής συχνότητας
αντιπροσωπεύουν την ‘προσέγγιση ή approximation’ και τα φίλτρα
υψηλής συχνότητας την ‘λεπτομέρεια ή detail’ της προηγούμενης
ανάλυσης. Η ανάλυση μόνο της χαμηλής συχνότητας, Σχήμα 5.9(β),
καλείται ανάλυση wavelet ή wavelet decomposition, ενώ η ανάλυση
και των δύο περιοχών συχνοτήτων, Σχήμα 5.9(γ), καλείται ανάλυση
πακέτου με wavelet ή wavelet packet decomposition.

34

Μετασχηματισμός κυματιδίων
-Wavelte Transform (13)
• Οι δειγματολήπτες χρησιμοποιούνται έτσι ώστε οι παραγόμενοι
συντελεστές μετά από τα φίλτρα να είναι ίδιου πλήθους με την
ανάλυση του σήματος εισόδου.
• Έτσι ένα σήμα εισόδου S, μπορεί να αναλυθεί σαν: S=A3+D3+D2+D1 ή
S=A2+D2+D1 ή S=A1+D1.
• Όμοια μπορεί να αναλυθεί σαν: S=A1+AAD3+DAD3+ADD3+DDD3
• δίνοντας την επιθυμητή προσέγγιση και τις λεπτομέρειες. Το δέντρο
που σχηματίζεται καλείται ‘wavelet tree’ και η δομή του μεταφέρεται
μαζί με τους συντελεστές στο δέκτη και αποκωδικοποιητή για την
ανασύσταση του αρχικού σήματος.
• Το Σχήμα 5.9(γ) είναι ο μετασχηματισμός ενός μονοδιάστατου σήματος
σε τρία επίπεδα.

35
Μετασχηματισμός κυματιδίων
-Wavelte Transform (14)
Σχήμα 5.9 (α) Δυαδικός
μετασχηματισμός με τη
χρήση φίλτρων Χ.Σ και Υ.Σ.
(β) Wavelet
decomposition. (γ)
Wavelet packet
decomposition.

36

Μετασχηματισμός κυματιδίων
-Wavelte Transform (15)
• Η ανάλυση ενός δισδιάστατου σήματος, όπως η εικόνα, περιλαμβάνει την
ανάλυση πρώτα των σειρών και μετά των στηλών της και επομένως κάθε
επίπεδο μετασχηματισμού αποτελείται από ομάδα τεσσάρων φίλτρων. Το
Σχήμα 5.10 δείχνει συμβολικά την ανάλυση ενός δισδιάστατου σήματος
σε ένα ή δύο επίπεδα και το Σχήμα 5.11 την αναλυτική του μορφή,
σύμφωνα με τη θεωρία των υποζωνών. Για λόγους απλότητας του
σχήματος, οι υποδειγματολήπτες έχουν ενσωματωθεί στα φίλτρα. Οι
παραγόμενοι συντελεστές ενός επιπέδου αντιπροσωπεύουν την
‘προσέγγιση’ και τις ‘λεπτομέρειες’ (Οριζόντια-Κάθετη-Διαγώνια) και
είναι:
cA= Approximation coefficient cH=Horizontal detail
cV=Vertical detail cD=Diagonal detail

37
Μετασχηματισμός κυματιδίων
-Wavelte Transform (16)

Σχήμα 5.10 Συμβολική


απεικόνιση ανάλυσης
εικόνας σε ένα ή δύο
επίπεδα με DWT. Η
υποζώνη προσέγγισης
αναλύεται κάθε φορά
στις υποζώνες του
επόμενου επιπέδου, οι
οποίες έχουν
υποδιπλάσια ανάλυση
(spatial scalability)

38

Μετασχηματισμός κυματιδίων
-Wavelte Transform (17)

Σχήμα 5.11 Ανάλυση


εικόνας σε δύο επίπεδα
με DWT.

39
Μετασχηματισμός κυματιδίων
-Wavelte Transform (18)
Το Σχήμα 5.12 δείχνει το Σχήμα 5.12 (α) Αρχική εικόνα (Barbara).
μετασχηματισμό μιας εικόνας μετά από (β) Απεικόνιση των συντελεστών
ένα ή δύο επίπεδα. Είναι φανερό ότι οι μετασχηματσιμού ενός επιπέδου. (γ)
συντελεστές προσέγγισης, οι οποίοι Μετασχηματισμός δευτέρου επιπέδου
προέρχονται από τα φίλτρα χαμηλής της ‘προσέγγισης’ του πρώτου.
συχνότητας (LowLow ή LL), δίνουν την
πλησιέστερη εκδοχή της εικόνας ή
πληροφορίες για περιοχές με ομαλή
μεταβολή φωτεινότητας, ενώ οι
συντελεστές λεπτομέρειας, οι οποίοι
προέρχονται από τα φίλτρα υψηλής
συχνότητας (LH, HL, HH), δίνουν
πληροφορίες για τις ακμές της και για
περιοχές όπου υπάρχει σημαντική
μεταβολή φωτεινότητας.

40

Εφαρμογή του DWT


στη συμπίεση εικόνων (1)
Παράδειγμα 5.2
• Η εικόνα “Lenna.bin”, η οποία είναι σε δυαδική μορφή με διαστάσεις
512×512, αναλύεται με DWT σε ένα επίπεδο. Στη συνέχεια απεικονίζονται
η προσέγγιση και η λεπτομέρεια. Οι συντελεστές μετασχηματισμού
κβαντίζονται με ένα ομοιόμορφο κβαντιστή βήματος qs=50 και με τη
βοήθεια του αντίστροφου μετασχηματισμού πραγματοποιείται
ανασύσταση της αρχικής εικόνας. Τέλος, υπολογίζεται το PSNR (ποιότητα
ανασύνθεσης) και ο ρυθμός μετάδοσης.

41
Εφαρμογή του DWT
στη συμπίεση εικόνων (2)
Η εισαγωγή μιας δυαδικής εικόνας γίνεται με τη συνάρτηση readim.m.

% input binary image


function image=readim(name)
if strcmp(name,’Lenna’)
filename=’Lenna.bin’;
end
par=[512,512];
fid = fopen(filename,’r’);
image = fread(fid,par);
fclose(fid);
• Για την αποφυγή της παραμόρφωσης στα άκρα της εικόνας συνήθως
χρησιμοποιείται ένα αμφιορθογώνιο (biorthgonal) φίλτρο (π.χ. Daubechies 7/9)
με ταυτόχρονη συμμετρική επέκταση του σήματος εισόδου (symmetrical
padding). Το φίλτρο πρέπει να εισαχθεί στο Matlab με μια ορισμένη διαδικασία
(στο παράδειγμα χρησιμοποιείται το ορθογώνιο φίλτρο Daubechies db2), ενώ η
συμμετρική επέκταση γίνεται με την εντολή dwtmode(‘sym’).
42

Εφαρμογή του DWT


στη συμπίεση εικόνων (3)
• η κβάντιση με ομοιόμορφο κβαντιστή πραγματοποείται με τη συνάρτηση
quant.m.
% quantization function
function y=quant(x,qs)
y=round(x./qs).*qs;
• Η αντικειμενική ποιότητα της ανασυσταθείσας εικόνας μετράται με το
λόγο PSNR (Peak Signal to Noise Ratio).
• Ο ρυθμός μετάδοσης μετράται με την εντροπία των συντελεστών
μετασχηματσιμού, η οποία έίναι και το χαμηλότερο όριο που μπορεί να
επιτευχθεί.

43
Εφαρμογή του DWT
στη συμπίεση εικόνων (4)
% One level DWT
wtbxmngr(’V1’); % Matlab version>5.3
clear *;
% input of a binary image
im=readim(’Lenna’);
im=im'; %image rotation
im=double(im); %real numbers
[h,w]=size(im);
% symmetrical padding
dwtmode(‘sym’);
% quantizer step size
qs=50;
% one level DWT with “db2” wavelet
% approximation and detail coefficients (Horizontal-Vertical-Diagonal)
[cA1,cH1,cV1,cD1]=dwt2(im,’db2’);
% images fro the coefficients
A1=upcoef2(’a’,cA1,’db2’);
H1=upcoef2(’h’,cH1,’db2’);
V1=upcoef2(’v’,cV1,’db2’);
D1=upcoef2(’d’,cD1,’db2’);
44

Εφαρμογή του DWT


στη συμπίεση εικόνων (5)
% display subimages
% entropy estimation
subplot(2,2,1);imshow(mat2gray(A1));title(’Approximation A1’);
function bits=entropy(x)
subplot(2,2,2);imshow(mat2gray(H1));title(’Horizontal Detail H1’);
if isempty(x)==0 % only if x~=0
subplot(2,2,3);imshow(mat2gray(V1));title(’Vertical Detail V1’);
qn=max(abs(x));
subplot(2,2,4);imshow(mat2gray(D1));title(’Diagonal Detail D1’);
if qn~=0
% uniform quantization with step size of 50
p=hist(x,-qn:qn);
qA1=quant(cA1,qs);
else
qH1=quant(cH1,qs);
p=hist(x);
qV1=quant(cV1,qs);
end
qD1=quant(cD1,qs);
N=sum(p);
% image reconstruction
if ((N>0) & (min(p(:))>=0))
imr=idwt2(qA1,qH1,qV1,qD1,’db2’);
pnz=nonzeros(p);
% display initial and reconstructed images
hent=log2(N)-sum(pnz.*log2(pnz))/N;
figure;imshow(mat2gray(im));
else
figure;imshow(mat2gray(imr));
hent=0;
% objective quality estimation
end
% mse (mean square error
bits=hent*length(x);
im_dif=(im-imr).^2;
else
mse= sum(sum(im_dif))/(h*w);
bits=0;
psnr=10*log10((255*255)/mse);
end
% bit-rate estimated as the entropy of the transform coefficients
coef=[qA1(1:end),qH1(1:end),qV1(1:end),qD1(1:end)];
bt=entropy(coef);
% display PSNR and bit-rate
disp(’PSNR(dB)=’);disp(psnr);
disp(’bit-rate(bpp)=’);disp(bt/(h*w));
45
Εφαρμογή του DWT
στη συμπίεση εικόνων (6)
Η υποζώνη προσέγγισης είναι αυτή που περιέχει τη
μέση τιμή της εικόνας και περιέχει τις χαμηλές
συχνότητες ή τις περιοχές ομαλής φωτεινότητας
(smooth areas). Οι υποζώνες των λεπτομερειών είναι
αυτές που περιέχουν τις υψηλές συχνότητες ή τις
περιοχές απότομης μεταβολής της φωτεινότητας
(edges). Η ανάλυση της αρχικής εικόνας έχει γίνει
μικρότερη στις υποζώνες (coarse resolution) λόγω της
υποδειγματοληψίας που υφίσταται το σήμα μετά τα
φίλτρα. Είναι φανερό από το παραπάνω σχήμα, ότι
μεταξύ των υποζωνών υπάρχει χωρική συσχέτιση των
συντελεστών δηλαδή οι ακμές της εικόνας
περιγράφονται σε όλες τις υποζώνες. Αυτό σημαίνει
ότι ένας σημαντικός συντελεστής σε μία υποζώνη
αντιστοιχεί με μεγάλη πιθανότητα σε σημαντικό
συντελεστή σε άλλη υποζώνη. Αυτή η παρατήρηση
οδηγεί την ανάπτυξη αλγορίθμων συμπίεσης της
εικόνας. 46

Εφαρμογή του DWT


στη συμπίεση εικόνων (7)
• Η κβάντιση των συντελεστών που
προκύπτουν από την ανάλυση
DWT σε ένα επίπεδο είναι
φυσικό να μηδενίσει πολλούς
συντελεστές, ιδιαίτερα στις
υποζώνες υψηλών συχνοτήτων
όπου πολλοί συντελεστές έχουν
μικρές τιμές. Η ανασύσταση της
εικόνας και από τις τέσσερις
υποζώνες δίνουν το παραπάνω
σχήμα, όπου φαίνεται η αρχική
εικόνα και η επανασυσταθείσα:
imr=A1+H1+V1+D1

47
Εφαρμογή του DWT
στη συμπίεση εικόνων (8)
• Εάν η προσέγγιση Α1 αναλυθεί στο επόμενο επίπεδο δηλ:
Α1=Α12+Η12+V12+D12, η εικόνα θα αποτελείται από:
• imr=( Α12+Η12+V12+D12)+ H1+V1+D1
• Η ποιότητα της εικόνας μετά την ανασύσταση είναι: PSNR=29.95 dB και ο ρυθμός
δεδομένων για μία τέτοια ανάλυση και κωδικοποίηση είναι: 1.60 bpp. Αυτό
συνεπάγεται ότι κάθε pixel μπορεί να μεταδοθεί με 1.6 bits αντί για 8 bits της
αρχικής εικόνας, δηλαδή με μία συμπίεση 8:1.6=5 (συντελεστής συμπίεσης ή
compression factor). Αυτό είναι και το όριο του ρυθμού δεδομένων για την
δεδομένη τιμή του κβαντιστή. Στην παρούσα άσκηση χρησιμοποιείται ένας
ομοιόμορφος κβαντιστής για όλες τις υποζώνες, από την τιμή του οποίου
εξαρτάται ο τελικός ρυθμός δεδομένων. Είναι προφανές ότι όσο η τιμή του
κβαντιστή γίνεται μικρότερη, τόσο η ποιότητα της εικόνας που λαμβάνει ο δέκτης
γίνεται καλύτερη.

48

Εφαρμογή του DWT


στη συμπίεση εικόνων (9)
• Παράδειγμα 5.3
• Η ανάλυση μιας εικόνας σε πολλαπλά επίπεδα μπορεί να γίνει με τη συνάρτηση
wavedec2. Είσοδοι στη συνάρτηση είναι η εικόνα, ο αριθμός των επιπέδων και ο
τύπος των φίλτρων και προκύπτει ένας πίνακας c ο οποίος περιέχει τους
συντελεστές κάθε επιπέδου και ένας πίνακας s ο οποίος περιέχει το μέγεθος των
επί μέρους πινάκων των συντελεστών. Ο προσδιορισμός των συντελεστών σε
κάθε επίπεδο γίνεται με τις συναρτήσεις appcoef2 και detcoef2, ενώ η
ανακατασκευή της εικόνας μόνο από συγκεκριμένους συντελεστές γίνεται με την
συνάρτηση wrcoef2. Η συνολική ανασύνθεση γίνεται με την waverec2. =
• Με την συνάρτηση ddencomp προσδιορίζεται η προκαθορισμένη τιμή κατωφλίου
και ο τρόπος εφαρμογής αυτού στην εικόνα. Στο πρόγραμμα χρησιμοποιείται ως
εξής:
[thr,sorh,keepapp]=ddencmp(’cmp’,’wv’,im);

49
Εφαρμογή του DWT
στη συμπίεση εικόνων (10)
• Είσοδος είναι η εικόνα im, ’cmp’ για συμπίεση και ’wv’ για ανάλυση DWT.
Έξοδος είναι η τιμή κατωφλίου thr (threshold), ο τρόπος εφαρμογής του
κατωφλίου sorh (soft or hard) και το keepapp δηλαδή εάν το κατώφλι θα
εφαρμοστεί και στην υποζώνη προσέγγισης. Οι προκαθορισμένες τιμές είναι
οι εξής:
thr=median (abs(detail at level 1)), sorh=h δηλ. hard και keepapp=1 δηλ. το
κατώφλι δεν εφαρμόζεται στην υποζώνη προσέγγισης.

50

Εφαρμογή του DWT


στη συμπίεση εικόνων (11)
• Αφού εξασφαλιστούν οι προκαθορισμένες τιμές, χρησιμοποιείται η
συνάρτηση:
[imc,cc,ss,PERF0,PERF2]=wdencmp(’gbl’,c,s,’db2’,2,thr,sorh,keepapp);
• όπου σαν είσοδοι είναι οι προηγούμενες τιμές, ο αριθμός των επιπέδων
ανάλυσης, ο τύπος των φίλτρων, οι πίνακες ανάλυσης c και s και η
παράμετρος gbl (global) η οποία υποδεικνύει την εφαρμογή του ίδιου
κατωφλίου σε όλες τις υποζώνες (είναι δυνατή η εφαρμογή διαφορετικών
κατωφλίων σε κάθε υποζώνη). Έξοδοι είναι η ανασυσταθείσα συμπιεσμένη
εικόνα, οι νέοι πίνακες ανάλυσης cc και ss και οι συντελεστές απόδοσης για
την ανασύνθεση και τη συμπίεση. Ο συντελεστής PERF0 δείχνει το ποσοστό
των συντελεστών που έχουν μηδενιστεί μετά την εφαρμογή του κατωφλίου
και ο συντελεστής PERF2 δείχνει το ποσοστό της διατηρούμενης ενέργειας της
συμπιεσμένης εικόνας.

51
Εφαρμογή του DWT
στη συμπίεση εικόνων (12)
Σχήμα 5.13 Εφαρμογή κατωφλίου soft ή hard σε
ένα σήμα. (α) Αρχικό σήμα. (β) Σήμα με κατώφλι
hard. (γ) Σήμα με κατώφλι soft.
Το παραπάνω σχήμα δείχνει την προσέγγιση και τις
λεπτομέρειες στα δύο επίπεδα.
Η εφαρμογή της συνάρτησης ddencmp στην εικόνα
im, δίνει: thr=2, που είναι ένα πολύ χαμηλό
επίπεδο κατωφλίου. Η χρήση αυτού του
κατωφλίου για συμπίεση δίνει: PERF0=44.22 % και
PERF2=99.99 %. Αυτό σημαίνει ότι η συμπιεσμένη
εικόνα είναι ίδια ακριβώς με την αρχική, αν και το
44 % των συντελεστών ανάλυσης έχουν μηδενιστεί.
Αυτό δείχνει τον ρόλο που διαδραματίζει ο
μετασχηματισμός DWT. Η οπτική ποιότητα της
αρχικής και της συμπιεσθείσας εικόνας είναι ίδια.
Εάν φυσικά αυξηθεί η τιμή κατωφλίου ο πρώτος
συντελεστής θα αυξάνεται, ενώ ο δεύτερος θα
μειώνεται ελαττώνοντας και την ποιότητα της
εικόνας.
52

Εφαρμογή του DWT


στη συμπίεση εικόνων (13)
% Two level DWT
wtbxmngr(’V1’); % Matlab version>5.3
clear *;
% input of a binary image
im=readim(’Lenna’);
im=im'; %image rotation
im=double(im); %real numbers
[h,w]=size(im);
% symmetrical padding
dwtmode(‘sym’);
% two level decomposition
[c,s]=wavedec2(im,2,’db2’);
% second level coefficients
cA2=appcoef2(c,s,’db2’);
cH2=detcoef2(’h’,c,s,2);
cV2=detcoef2(’v’,c,s,2);
cD2=detcoef2(’d’,c,s,2);
cH1=detcoef2(’h’,c,s,1);
cV1=detcoef2(’v’,c,s,1);
cD1=detcoef2(’d’,c,s,1);
53
Εφαρμογή του DWT
στη συμπίεση εικόνων (14)
% subimages from approximation and details
A2=wrcoef2(’a’,c,s,’db2’);
H1=wrcoef2(’h’,c,s,’db2’,1);
V1=wrcoef2(’v’,c,s,’db2’,1);
D1=wrcoef2(’d’,c,s,’db2’,1);
H2=wrcoef2(’h’,c,s,’db2’,2);
V2=wrcoef2(’v’,c,s,’db2’,2);
D2=wrcoef2(’d’,c,s,’db2’,2);
% Α1 reconstruction
A1=idwt2(cA2,cH2,cV2,cD2,’db2’);
% display subimages
subplot(2,4,1);imshow(mat2gray(A1));title(’Approximation A1’);
subplot(2,4,2);imshow(mat2gray(H1));title(’Horizontal Detail H1’);
subplot(2,4,3);imshow(mat2gray(V1));title(’Vertical Detail V1’);
subplot(2,4,4);imshow(mat2gray(D1));title(’Diagonal Detail D1’);
subplot(2,4,5);imshow(mat2gray(A2));title(’Approximation A2’);
subplot(2,4,6);imshow(mat2gray(H2));title(’Horizontal Detail H2’);
subplot(2,4,7);imshow(mat2gray(V2));title(’Vertical Detail V2’);
subplot(2,4,8);imshow(mat2gray(D2));title(’Diagonal Detail D2’);
% ***image compression***
% Matlab quantization threshold
[thr,sorh,keepapp]=ddencmp(’cmp’,’wv’,im);
[imr,cc,ss,PERF0,PERF2]=wdencmp(’gbl’,c,s,’db2’,2,thr,sorh,keepapp);
% display initial and reconstructed images
figure;imshow(mat2gray(im));
figure;imshow(mat2gray(imr));
% performance coefficients
disp(‘PERF0(%)=’);disp(PERF0);
disp(‘PERF2(%)=’);disp(PERF2); 54

Εφαρμογή του DWT


στη απαλοιφή θορύβου (1)
Το σήμα το οποίο θα προκύψει εάν σε μία εικόνα f(i,j) επικαθήσει θόρυβος είναι:

s(i,j)=f(i,j)+σ×e(i,j) (5.11)

όπου e είναι λευκός θόρυβος Gaussian κατανομής, με μηδενική μέση τιμή και
μοναδιαία διασπορά.
Αντικειμενικός σκοπός είναι η απαλοιφή του θορύβου και η ανάδειξη της
συνάρτησης f. Με τη βοήθεια των wavelets, αυτό μπορεί να γίνει με τρία βήματα:
• Το σήμα αναλύεται σε L αριθμό επιπέδων με DWT.
• Για κάθε επίπεδο από 1 έως L επιλέγεται ένα επίπεδο κατωφλίου και εφαρμόζεται
soft μέθοδος στους συντελεστές λεπτομέρειας. Η εφαρμογή του κατωφλίου μπορεί
να γίνει και ενιαία σε όλους τους συντελεστές. Η εξάλειψη κάποιων συντελεστών
λεπτομέρειας θα ελαττώσει το θόρυβο αλλά και την ενέργεια του σήματος κατά ένα
μικρό ποσοστό. Η ενέργεια του σήματος ευρίσκεται κυρίως στους συντελεστές
προσέγγισης.
• Γίνεται ανασύνθεση του σήματος.

55
Εφαρμογή του DWT
στη απαλοιφή θορύβου (2)
Έτσι λοιπόν είναι σημαντικό να γίνει σωστή επιλογή της τιμής κατωφλίου και του
τρόπου που αυτό θα εφαρμοστεί. Ο τρόπος εφαρμογής μπορεί να είναι soft ή hard,
όπως αυτό φαίνεται στο Σχήμα 5.13. Εάν το σήμα είναι x, το σήμα που προκύπτει
μετά την εφαρμογή κατωφλίου είναι:
Soft: xT=x εάν |x|>t και μηδέν εάν |x|<=t
Hard: xT=sign(x)(|x|-t) εάν |x|>t και μηδέν εάν |x|<=t

Με το κατώφλι τύπου soft μηδενίζονται τα στοιχεία του σήματος που οι απόλυτες


τιμές τους ευρίσκονται κάτω από το κατώφλι και συρρικνώνονται τα στοιχεία με
τιμές πάνω από το κατώφλι. Με το κατώφλι τύπου hard μηδενίζονται μόνο τα
στοιχεία του σήματος που οι απόλυτες τιμές τους ευρίσκονται κάτω από το κατώφλι.
Στο Matlab υπάρχουν διάφοροι τρόποι υπολογισμού της τιμής κατωφλίου. Η μέθοδος
soft χρησιμοποιείται συνήθως για την απομάκρυνση του θορύβου, ενώ η μέθοδος
hard για την συμπίεση.

56

Εφαρμογή του DWT


στη απαλοιφή θορύβου (3)
• Παράδειγμα 5.4 % input an image
load sinsin;
• Η αφαίρεση του θορύβου από
% noise addition
μια εικόνα μπορεί να γίνει με τη
init=2055615866;randn(‘seed’,init);
βοήθεια συναρτήσεων του
im=X +18*randn(size(Χ));
Matlab, ως εξής:
% threshold estimation for denoising
[thr,sorh,keepapp]=ddencmp(‘den’,’wv’,im);
% noise removal by applying threshold to
subands
levels=2;
imd=wdencmp(‘gbl’,im,’db2’,levels,thr,sorh,kee
papp);
% display initial and denoised images
imshow(mat2gray(X));
figure;imshow(mat2gray(im));
figure;imshow(mat2gray(imd));

57
Εφαρμογή του DWT
στη απαλοιφή θορύβου (4)
Σε αυτό το παράδειγμα χρησιμοποιείται η έτοιμη συνάρτηση του Matlab:

[thr,sorh,keepapp]=ddencmp(‘den’,’wv’,im)

η οποία δίνει την τιμή κατωφλίου (thr) για τη δεδομένη εικόνα εάν
χρησιμοποιηθεί ανάλυση με wavelets, τον τρόπο χρήσης του κατωφλίου
(hard ή soft) (sorh) και εάν θα εφαρμοστεί και στους συντελεστές
προσέγγισης (keepapp). Για τη δεδομένη εικόνα προκύπτει:

thr=80.6881, sorh=s και keepapp=1 (να μην εφαρμοστεί το κατώφλι στους


συντελεστές προσέγγισης)

58

Εφαρμογή του DWT


στη απαλοιφή θορύβου (5)
Η συνάρτηση:
imd=wdencmp(‘gbl’,im,’db2’,levels,thr,sorh,keepapp)

πραγματοποιεί την απομάκρυνση του θορύβου από τους συντελεστές


λεπτομέρειας και ανασυνθέτει την εικόνα. Το επιλεγόμενο κατώφλι
εφαρμόζεται, με την παράμετρο gbl, ενιαία σε όλους τους συντελεστές όλων
των επιπέδων. Υπάρχει δυνατότητα εφαρμογής διαφορετικού κατωφλίου σε
κάθε επίπεδο. Το αποτέλεσμα φαίνεται στο Σχήμα 5.14, όπου η αρχική
εικόνα συγκρίνεται με αυτή που έχει το θόρυβο και με την προκύπτουσα
μετά την απομάκρυνση του θορύβου.

59
Εφαρμογή του DWT
στη απαλοιφή θορύβου (6)

Σχήμα 5.14 (α) Αρχική


εικόνα. (β) Εικόνα με
θόρυβο. (γ) Εικόνα μετά τη
μείωση του θορύβου.

60

Εφαρμογή του DWT


στη απαλοιφή θορύβου (7)
Παράδειγμα 5.5
Το παράδειγμα αυτό είναι πτυχιακή εργασία που έχει δημοσιευτεί στην
Επιστημονική Επετηρίδα ΕφαρμοσμένηςΈρευνας του Τ.Ε.Ι. Πειραιά
(τεύχος 1, 2004)

61
Εφαρμογή του DWT
στη απαλοιφή θορύβου (8)
Η προτεινόμενη μέθοδος βασίζεται στην ανάλυση μιας εικόνας με το διακριτό
μετασχηματισμό κυματιδίων (DWT) και την εφαρμογή ενός κατωφλίου για την
απόρριψη μέρους των συντελεστών του μετασχηματισμού. Η εκτίμηση του κατωφλίου
πραγματοποιείται θεωρώντας ότι οι συντελεστές έχουν Gaussian κατανομή και με τη
βοήθεια ενός εκτιμητή, ο οποίος εφαρμόζεται είτε σε όλους τους συντελεστές ή στους
συντελεστές κάθε υποζώνης για κάθε επίπεδο ανάλυσης του μετασχηματισμού. Ακόμα
στην παρούσα εργασία γίνεται εκτίμηση της απόδοσης των κριτηρίων, τα οποία
χρησιμοποιούνται και στο Matlab, για τον προσδιορισμού του επιπέδου κατωφλίου.
• Χρησιμοποιείται ο εκτιμητής:
ο οποίος προκύπτει από τη μεσαία τιμή των συντελεστών μετασχηματισμού της
διαγώνιας υποζώνης του πρώτου επιπέδου ανάλυσης του μετασχηματισμού. To επίπεδο
κατωφλίου προσδιορίζεται σύμφωνα με κάποιο κριτήριο και χρησιμοποιείται για όλους
τους συντελεστές μετασχηματισμού (global method ή unique median estimator). Τα
χρησιμοποιούμενα κριτήρια υπολογισμού του επιπέδου κατωφλίου είναι: “rigrsure”,
“heursure”, “sqtwolog”, “minimaxi”. Για παράδειγμα, το επίπεδο κατωφλίου για το
κριτήριο “sqtwolog” δίνεται από τη σχέση: sqrt(2*log(length(s))).
62

Εφαρμογή του DWT


στη απαλοιφή θορύβου (9)
• Ο ίδιος εκτιμητής χρησιμοποιείται για τον υπολογισμό της τυπικής
απόκλισης και στη συνέχεια του επιπέδου κατωφλίου, σύμφωνα με τα
παραπάνω κριτήρια, για κάθε επίπεδο μετασχηματισμού. Η μέθοδος
αυτή καλείται υπολογισμός κατωφλίου για κάθε επίπεδο (level median
estimator).
• Ο ίδιος εκτιμητής χρησιμοποιείται για τον υπολογισμό της τυπικής
απόκλισης και στη συνέχεια του επιπέδου κατωφλίου, σύμφωνα με τα
παραπάνω κριτήρια, για κάθε υποζώνη λεπτομέρειας χωριστά. Η μέθοδος
αυτή καλείται υπολογισμός κατωφλίου για κάθε υποζώνη λεπτομέρειας
(detail median estimator).
• Τα αποτελέσματα απεικονίζονται στο Σχήμα 5.15. Το Σχήμα 5.16 δείχνει
τα οπτικά αποτελέσματα των διαφόρων τεχνικών απαλοιφής του
θορύβου.

63
Εφαρμογή του DWT
στη απαλοιφή θορύβου (10)

Σχήμα 5.15 Συγκριτικά


αποτελέσματα μεταξύ των
διαφόρων τεχνικών
απαλοιφής θορύβου.

64

Εφαρμογή του DWT


στη απαλοιφή θορύβου (11)
Σχήμα 5.16 Συγκριτικά
αποτελέσματα μεταξύ των
διαφόρων τεχνικών
απαλοιφής θορύβου. (α)
Αρχική εικόνα. (β) Εικόνα
με θόρυβο. (γ) Μέθοδος
Matlab. (δ) Μέθοδος
unique median etsimator.
(ε) Μέθοδος level median
estimator. (στ) Μέθοδος
detail median estimator.

65
Εφαρμογή του DWT
στη απαλοιφή θορύβου (12)
Παράδειγμα 5.6
Το παράδειγμα αυτό είναι πτυχιακή εργασία που έχει παρουσιαστεί στο
20 Διεθνές Συνέδριο Τεχνολογίας & Πληροφορικής (Σπέτσες Ιούνιος 2005)

Οι αλγόριθμοι απαλοιφής θορύβου οι οποίοι χρησιμοποιούν κάποιο κατώφλι για το


μηδενισμό κάποιων συντελεστών μετασχηματσιμού δεν παρουσιάζουν χωρική
προσαρμοστικότητα (το ίδιο κατώφλι σε οποιαδήποτε περιοχή) και γι’ αυτό το λόγο
η απόδοσή τους σε πραγματικές εικόνες δεν είναι αποδοτική. Μια νέα γενιά
αλγορίθμων βασίζεται στο γεγονός ότι η κατανομή των συντελεστών
μετασχηματισμού στις υποζώνες είναι περίπου Gaussian. Έτσι οι
απόθορυβοποιημένοι συντελεστές υπολογίζονται, μέσω ενός εκτιμητή MMSE
(Minimum Mean Square Error), από τους συντελεστές με θόρυβο και τη διασπορά
του σήματος και του θορύβου. Η διασπορά του σήματος υπολογίζεται ανά μικρές
περιοχές, όπου αυτή παραμένει σταθερή, με έναν εκτιμητή ML (Maximum
Likelihood). Οι αλγόριθμοι αυτοί παρουσιάζουν ικανοποιητικά αποτελέσματα σε
ομοιογενείς περιοχές, αλλά στις ακμές των αντικειμένων παρουσιάζουν χειρότερη
απόδοση καθώς σε εκείνες τις περιοχές η διασπορά δεν είναι σταθερή.
66

Εφαρμογή του DWT


στη απαλοιφή θορύβου (13)
Ο προτεινόμενος αλγόριθμος διαιρεί τις υποζώνες μετασχηματισμού σε μπλοκ
μεταβλητού μεγέθους χρησιμοποιώντας την ανάλυση τετραδικών δέντρων (Quad-
Tree-Decomposition ή QTD). Το κριτήριο διαίρεσης ενός μπλοκ σε τέσσερα
μικρότερα μπλοκ είναι η σύγκριση της διασποράς της περιοχής με μια τιμή
κατωφλίου. Εάν η διασπορά είναι μεγαλύτερη της τιμής κατωφλίου τότε το μπλοκ
διαιρείται σε τέσσερα μικρότερα μπλοκ. Η διαδικασία επαναλαμβάνεται μέχρι ένα
επιθυμητό μέγεθος μπλοκ. Για κάθε δημιουργούμενο μπλοκ υπολογίζεται η
διασπορά του σήματος, ενώ η διασπορά του θορύβου υπολογίζεται από τον πιο
πάνω αναφερθέντα εκτιμητή.

Το Σχήμα 5.17 δείχνει το μπλοκ διάγραμμα εφαρμογής του προτεινόμενου


αλγορίθμου. Εάν X(k) είναι οι “καθαροί” συντελεστές και Y(k) είναι οι συντελεστές
με θόρυβο, αποδεικνύεται ότι:

67
Εφαρμογή του DWT
στη απαλοιφή θορύβου (14)

Όπου  X είναι η διασπορά του σήματος εισόδου, η οποία είναι άγνωστη.


2

Μια εκτίμησή της πραγματοποιείται με τον εκτιμητή ML για μικρές


περιοχές όπου η διασπορά θεωρείται σταθερή. Το Σχήμα 5.18 δείχνει την
υλοποίηση της διαίρεσης των υποζωνών σε μπλοκ μεταβλητού μεγέθους,
ενώ το Σχήμα 5.19 δείχνει την απόδοση του προτεινόμενου αλγορίθμου σε
σύγκριση με τον αλγόριθμο LAWML, ο οποίος εφαρμόζει την ίδια τεχνική σε
μπλοκ σταθερού μεγέθους.

68

Εφαρμογή του DWT


στη απαλοιφή θορύβου (15)

Σχήμα 5.17
Μπλοκ διάγραμμα
στατιστικής
εκτίμησης των
συντελεστών
χωρίς θόρυβο.

69
Εφαρμογή του DWT
στη απαλοιφή θορύβου (16)
Σχήμα 5.18 Διαίρεση των
υποζωνών σε μπλοκ μεταβλητού Σχήμα 5.19 (α) Αλγόριθμος LAWML.
μεγέθους χρησιμοποιώντας σαν (β) Προτεινόμενος αλγόριθμος.
κριτήριο διαίρεσης τη σύγκριση
της διασποράς με μια τιμή
κατωφλίου.

70

Ενότητα 6 : Κωδικοποίηση & Συμπίεση εικόνας


Σκοποί ενότητας
• Σκοπός της ενότητας είναι να εξοικειωθείτε με
την ανάπτυξη των τρόπων κωδικοποίησης
μιας εικόνας.

Περιεχόμενα ενότητας
 Εντροπία πηγής συμβόλων  Διαφορική κωδικοποίηση με
 Τεχνικές κωδικοποίησης pixel απώλειες
 Κωδικοποίηση Huffman  Βέλτιστη διαφορική
 Κωδικοποίηση RLC κωδικοποίηση με απώλειες

 Αριθμητική κωδικοποίηση  Κωδικοποίηση DPCM

 Κωδικοποίηση επιπέδου  Τεχνικές κωδικοποίησης με


μετασχηματισμό
 Τεχνικές κωδικοποίησης με
πρόβλεψη  Διαδικασία κωδικοποίησης με
μετασχηματισμό
 Διαφορική κωδικοποίηση χωρίς
απώλειες  Διαδικασία διάθεσης επιθυμητού
ρυθμού

5
Εντροπία πηγής συμβόλων (1)
Όπου Β είναι η μέση τιμή
bits/pixel της αρχικής
εικόνας και Η το
χαμηλότερο δυνατό όριο
κωδικοποίησης, το οποίο
προσδιορίζεται από την
εξίσωση (6.1).

Εντροπία πηγής συμβόλων (2)

Εάν κάθε απόχρωση εμφανίζεται στην εικόνα ni φορές και κωδικοποιείται


με bi bits, τότε ο μέσος αριθμός των bits για κάθε pixel είναι:

7
Εντροπία πηγής συμβόλων (3)
• Παράδειγμα 6.1
• Η εντροπία μιας πηγής της οποίας τα σύμβολα είναι ισοπιθανά ή έχουν
ομοιόμορφη κατανομή, δηλαδή pi=1/L με i=0,1,…,L-1, δίνεται από την (6.1):

• Εάν τα σύμβολα της πηγής είναι δύο (π.χ άσπρο με 1-μαύρο με 0) και κάθε
σύμβολο έχει πιθανότητα εμφάνισης 50%, τότε Η=1 bit/pixel. Εάν τα δύο σύμβολα
έχουν πιθανότητες εμφάνισης p0=1/8 και p1=7/8 αντίστοιχα, τότε: Η=-
[1/8log21/8+7/8log27/8]=0.5436 bits. Η ομοιόμορφη κατανομή των συμβόλων
δίνει τη μέγιστη εντροπία και επομένως υπάρχει πλεονασματική πληροφορία
κωδικοποίησης, αφού υπάρχει τρόπος κωδικοποίησης με λιγότερα bits, λόγω της
συνήθους ανομοιόμορφης κατανομής των συμβόλων σε μια πηγή. Το Σχήμα 6.1
δείχνει την εντροπία μιας δυαδικής πηγής συμβόλων σε σχέση με την πιθανότητα
εμφάνισης ενός συμβόλου.

Εντροπία πηγής συμβόλων (4)


Σχήμα 6.1 Εντροπία
δυαδικής πηγής
συμβόλων.

9
Εντροπία πηγής συμβόλων (5)
Παράδειγμα 6.2 % entropy estimation
function bits=entropy(x)
Ο υπολογισμός της εντροπίας πρώτου
if isempty(x)==0 % only if
βαθμού για μια εικόνα Μ × Ν στο Matlab x~=0
βασίζεται στην εξίσωση (6.1): qn=max(abs(x));
if qn~=0
p=hist(x,-qn:qn);
else
p=hist(x);
end
N=sum(p);
if ((N>0) & (min(p(:))>=0))
pnz=nonzeros(p);
hent=log2(N)-
sum(pnz.*log2(pnz))/N;
else
hent=0;
end
bits=hent*length(x);
else
bits=0;
end
10

Τεχνικές κωδικοποίησης pixel

11
Κωδικοποίηση Huffman (1)
Η κωδικοποίηση Huffman έχει σα στόχο, σε ένα αλφάβητο (σύνολο συμβόλων) α i με
Ν σύμβολα και πιθανότητα εμφάνισης κάθε συμβόλου p(αi), να επιτύχει μια κωδική
λέξη bi για κάθε σύμβολο με μήκος l(bi), έτσι ώστε το μέσο μήκος όλων των κωδικών
λέξεων να είναι το ελάχιστο δυνατό. Βέβαια, το ελάχιστο μήκος είναι η εντροπία Η
του αλφαβήτου, η οποία δίνεται από την εξίσωση (6.1). Η κωδικοποίηση Huffman
δίνει την κάλύτερη δυνατή προσέγγιση σε αυτό το ελάχιστο. Το μέσο μήκος είναι:

12

Κωδικοποίηση Huffman (2)

13
Κωδικοποίηση Huffman (3)
• Το Σχήμα 6.2 δείχνει τον τρόπο Σχήμα 6.2 Αλγόριθμος κωδικοποίησης
κωδικοποίησης ενός αλφαβήτου με Huffman.
τον αλγόριθμο Huffman. O Πίνακας
6.1 περιέχει τις κωδικές λέξεις με
τις οποίες αναπαριστάται κάθε
σύμβολο αυτής της διαδικασίας
από τη ρίζα προς τα φύλλα. Με
έντονα γράμματα είναι οι κωδικές
λέξεις του αρχικού αλφαβήτου. Η
εντροπία του αλφαβήτου είναι
Η=2.28 bits, ενώ το μέσο μήκος
Ε(l(bi)) σύμφωνα με την εξίσωση
(6.7) είναι 2.35 bits. Είναι
προφανές ότι ο δέκτης πρέπει να
έχει τον πίνακα κωδικοποίησης για
να είναι δυνατή η αναπαραγωγή
των συμβόλων από το bit-stream. 14

Κωδικοποίηση Huffman (4)


Η αναπτυχθείσα
συνάρτηση huffbin.m
(εργαστηριακή άσκηση 6)
υπολογίζει τις κωδικές
λέξεις μιας σειράς
συμβόλων.

Πίνακας 6.1 Κωδικές


λέξεις αλφαβήτου με τον
αλγόριθμο Huffman.

15
Κωδικοποίηση RLC -Run Length Coding (1)

16

Κωδικοποίηση RLC -Run Length Coding (2)


Όπου l0 και l1 είναι το μέσο
μήκος των αντίστοιχων
ομάδων. Η εξίσωση (6.8)
δίνει το μέσο αριθμό των
bits/pixel που απαιτείται
για να κωδικοποιηθούν οι
ομάδες “0” και “1” με τη
μέθοδο RLC.
Η αναπτυχθείσα
συνάρτηση runlength.m
είναι η ακόλουθη:

17
Αριθμητική κωδικοποίηση (1)
Η αριθμητική κωδικοποίηση δίνει μια κωδική λέξη σε μια σειρά
συμβόλων.
Αυτή η κωδική λέξη αντιπροσωπεύει ένα διάστημα
πραγματικών αριθμών μεταξύ 0 και 1. Το διάστημα αυτό γίνεται
διαρκώς μικρότερο, όσο ο αριθμός των συμβόλων αυξάνεται και
συνεπώς ο αριθμός των bits που απαιτείται για την
αναπαράσταση αυτών των διαστημάτων γίνεται μεγαλύτερος.
Το μέγεθος του διαστήματος μειώνεται με την εμφάνιση
κάποιου συμβόλου ανάλογα με την πιθανότητα εμφάνισής του.

18

Αριθμητική κωδικοποίηση (2)


Το Σχήμα 6.3 δείχνει την αριθμητική κωδικοποίηση για μια
σειρά συμβόλων a, b, c, c, d με πιθανότητες εμφάνισης 0.2, 0.2,
0.4, 0.2 του αντίστοιχου αλφάβητου a, b, c, d.
To διάστημα [0,1) διατίθεται αρχικά σε αυτά τα σύμβολα
ανάλογα με την πιθανότητά τους και έτσι το διάστημα που
καταλαμβάνει κάθε σύμβολο είναι 0.2, 0.2, 0.4, 0.2 αντίστοιχα.
Στη συνέχεια ακολουθούν τα εξής βήματα:

19
Αριθμητική κωδικοποίηση (3)

20

Αριθμητική κωδικοποίηση (4)

Σχήμα 6.3 Αλγόριθμος


αριθμητικής
κωδικοποίησης.

21
Αριθμητική κωδικοποίηση (5)

22

Αριθμητική κωδικοποίηση (6)

Σχήμα 6.4
Περιβάλλον ενός
συμβόλου.

23
Αριθμητική κωδικοποίηση (7)
Παράδειγμα 6.3

24

Αριθμητική κωδικοποίηση (8)


Το Σχήμα 6.5 δείχνει τον
υπολογισμό των
διαστημάτων σύμφωνα με
την παραπάνω ανάλυση.

Σχήμα 6.5 Αριθμητική


κωδικοποίηση δυαδικής
συμβολοσειράς.

25
Αριθμητική κωδικοποίηση (9)
Παράδειγμα 6.4

26

Αριθμητική κωδικοποίηση (10)


Παράδειγμα 6.5

27
Αριθμητική κωδικοποίηση (11)
Σχήμα 6.6
Προσαρμοζόμενη
αριθμητική
κωδικοποίηση
δυαδικής
συμβολοσειράς.

28

Κωδικοποίηση επιπέδου
- Bit plane encoding (1)

29
Κωδικοποίηση επιπέδου
- Bit plane encoding (2)
Παράδειγμα 6.6
Η μετατροπή ενός επιπέδου γκρι σε
Τα προηγούμενα γειτονικά pixels θα δυαδικό κώδικα των 8 bits (To Matlab
έχουν τιμές, σύμφωνα με τη σχέση διαθέτει για τον ίδιο σκοπό τη
(6.11), 00011000 και 00001000 συνάρτηση dec2bin) γίνεται με την
αντίστοιχα. Μόνο σε ένα bit pane ακόλουθη συνάρτηση:
υπάρχει μεταβολή επιπέδου μεταξύ των
γειτονικών pixels.

30

Κωδικοποίηση επιπέδου
- Bit plane encoding (3)
Η μετατροπή ενός επιπέδου γκρι Παράδειγμα 6.7
σε κώδικα Gray γίνεται με την
ακόλουθη συνάρτηση:

31
Κωδικοποίηση επιπέδου
- Bit plane encoding (4)

32

Κωδικοποίηση επιπέδου
- Bit plane encoding (5)

33
Τεχνικές κωδικοποίησης με
πρόβλεψη

34

Διαφορική κωδικοποίηση
χωρίς απώλειες (1)

35
Διαφορική κωδικοποίηση
χωρίς απώλειες (2)
Παράδειγμα 6.8

Να γραφτεί πρόγραμμα το
οποίο να υπολογίζει τις οκτώ
περιπτώσεις πρόβλεψης και τις
αντίστοιχες εντροπίες για την
εικόνα:

36

Διαφορική κωδικοποίηση
χωρίς απώλειες (3)
Τα αποτελέσματα είναι:
h1=3.042, h2=2.752,
h3=3.038, h4=3.124,
h5=3.426, h6=3.141,
h7=3.342, h8=3.019. Στο
συγκεκριμένο παράδειγμα,
το καλύτερο αποτέλεσμα
δίνει η δεύτερη περίπτωση
πρόβλεψης. Στο πρότυπο
JPEG χωρίς απώλειες, για
κάθε μπλοκ 8 × 8 επιλέγεται
ο καλύτερος τρόπος
πρόβλεψης με την
παραπάνω μεθοδολογία. Ο
αποκωδικοποιητής
ενημερώνεται για την
καλύτερη πρόβλεψη με ένα
κωδικό των 3 bits.

37
Διαφορική κωδικοποίηση με
απώλειες (1)

38

Διαφορική κωδικοποίηση με
απώλειες (2)

Σχήμα 6.7 Διαφορική


κωδικοποίηση με απώλειες.
(α) Κωδικοποιητής. (β)
Αποκωδικοποιητής.

39
Διαφορική κωδικοποίηση με
απώλειες (3)
Σχήμα 6.8 Βελτιωμένη
διαφορική κωδικοποίηση με
απώλειες. (α) Κωδικοποιητής.
(β) Αποκωδικοποιητής.

40

Διαφορική κωδικοποίηση με
απώλειες (4)

Κωδικοποίηση συμβόλων
41
Βέλτιστη διαφορική κωδικοποίηση
με απώλειες (1)

42

Βέλτιστη διαφορική κωδικοποίηση


με απώλειες (2)
Παράδειγμα 6.9

43
Βέλτιστη διαφορική κωδικοποίηση
με απώλειες (3)
Το αποτέλεσμα είναι Η υλοποίηση στο Matlab πραγματοποιείται με το
α= 0.48 με ελάχιστη ακόλουθο πρόγραμμα:
μη κανονικοποιημένη %optimum lossy differential coding routine
παραμόρφωση 3743. u=randn(1,10001);
x=(1/sqrt(2))*(u(1:10000)+u(2:10001));
alpha=0:0.01:1; %optimisation constant
for j=1:101
dist=0; %distortion
xhat=0; %predicted value
for i=1:10000
prediction=alpha(j)*xhat;
xhat=prediction+signum(x(i)-prediction);
dist=dist+(x(i)-xhat)^2;
D(j)=dist;
end
end
[mindist,position]=min(D);
alpha(position)
mindist
44

Κωδικοποίηση DPCM –
Differential Pulse Code Modulation (1)

45
Κωδικοποίηση DPCM –
Differential Pulse Code Modulation (2)

Παράδειγμα 6.10

46

Κωδικοποίηση DPCM –
Differential Pulse Code Modulation (3)

47
Κωδικοποίηση DPCM –
Differential Pulse Code Modulation (4)

Σχήμα σφάλματος πρόβλεψης


48

Τεχνικές κωδικοποίησης με
μετασχηματισμό (1)

49
Τεχνικές κωδικοποίησης με
μετασχηματισμό (2)

50

Τεχνικές κωδικοποίησης με
μετασχηματισμό (3)

Σχήμα 6.9 Γενικό


σύστημα
κωδικοποίησης-
αποκωδικοποίηση
ς εικόνας.

51
Διαδικασία κωδικοποίησης με
Μετασχηματισμό (1)

52

Διαδικασία κωδικοποίησης με
Μετασχηματισμό (2)

53
Διαδικασία κωδικοποίησης με
Μετασχηματισμό (3)
Ιδανικός μετασχηματισμός
είναι εκείνος ο οποίος
αποσυσχετίζει πλήρως τους
συντελεστές
μετασχηματισμού και έτσι
δεν κωδικοποιείται η
πλεονάζουσα πληροφορία,
η οποία υπάρχει στο χωρικό
πεδίο. Πρέπει ακόμα ο
πίνακας μετασχηματισμού
να είναι ανεξάρτητος του
σήματος εισόδου, έτσι ώστε
να μην υπολογίζεται κάθε
φορά που το σήμα εισόδου
μεταβάλλεται.

54

Διαδικασία κωδικοποίησης με
Μετασχηματισμό (4)
Ο μετασχηματισμός DCT, ο οποίος έχει πίνακα μετασχηματισμού ανεξάρτητο
του σήματος εισόδου, δημιουργεί μικρό αριθμό συντελεστών στους οποίους
συγκεντρώνεται η ενέργεια τους σήματος εισόδου, διεκπεραιώνεται με ταχείς
αλγορίθμους και μειώνει τη δημιουργία παραμόρφωσης στα όρια κάθε μπλοκ
μετασχηματισμού (blocking artifact). Γι’ αυτούς τους λόγος, ο συγκεκριμένος
μετασχηματισμός χρησιμοποιείται στο πρότυπο συμπίεσης εικόνας JPEG.

55
Διαδικασία διάθεσης του
επιθυμητού ρυθμού (1)

56

Διαδικασία διάθεσης του


επιθυμητού ρυθμού (2)
Zonal Coding:

57
Διαδικασία διάθεσης του
επιθυμητού ρυθμού (3)
Threshold
Coding:

58

Διαδικασία διάθεσης του


επιθυμητού ρυθμού (4)
Σχήμα 6.10 Μέθοδος zonal coding για Σχήμα 6.11 Μάσκα κατωφλίου (
την κωδικοποίηση των συντελεστών threshold coding) για την κωδικοποίηση
μετασχηματισμού. (α) Μάσκα των συντελεστών ενός μπλοκ
κωδικοποίησης. (β) Διάθεση αριθμού μετασχηματισμού.
bits σε κάθε συντελεστή.

59
Διαδικασία διάθεσης του
επιθυμητού ρυθμού (5)

Παράδειγμα 6.11

60

Διαδικασία διάθεσης του


επιθυμητού ρυθμού (6)

61
Διαδικασία διάθεσης του
επιθυμητού ρυθμού (7)

Το σχήμα απεικονίζει τη
μάσκα που εφαρμόζεται σε
κάθε μπλοκ συντελεστών
μετασχηματισμού και την
ανακατασκευασμένη εικόνα.
Η ποιότητα ανακατασκευής
είναι 22.30 dB.

Συμπίεση εικόνας με χρήση


zonal mask. (α) Μάσκα
κωδικοποίησης. (β)
Ανακατασκευασμένη εικόνα.

62

Διαδικασία διάθεσης του


επιθυμητού ρυθμού (8)
Παράδειγμα 6.12

63
Διαδικασία διάθεσης του
επιθυμητού ρυθμού (9)
Το σχήμα απεικονίζει τη
μάσκα που εφαρμόζεται σε
κάθε μπλοκ συντελεστών
μετασχηματισμού και την
ανακατασκευασμένη εικόνα.
Η ποιότητα ανακατασκευής
είναι 26.24 dB.

Συμπίεση εικόνας με χρήση


threshold mask.
(α) Μάσκα κωδικοποίησης
ενός μπλοκ.
(β) Ανακατασκευασμένη
εικόνα.

64

Ενότητα 7 : Πρότυπο συμπίεσης JPEG


Σκοποί ενότητας
• Σκοπός της ενότητας αυτής είναι να
αποκομίσετε μια ολοκληρωμένη εικόνα σχετικά
με την περιγραφή του προτύπου συμπίεσης
εικόνων JPEG.

Περιεχόμενα ενότητας
 Το πρότυπο συμπίεσης εικόνας JPEG
 Συμπίεση χωρίς απώλειες
 Συμπίεση με απώλειες
 Εκτεταμένος τρόπος συμπίεσης
 Ιεραρχικός τρόπος συμπίεσης

5
Το πρότυπο συμπίεσης εικόνας JPEG

Η ιστορία

Συμπίεση χωρίς απώλειες (1)

Τι προσφέρει το JPEG

7
Συμπίεση χωρίς απώλειες (2)
Σχήμα 7.1 Κωδικοποιητής Σχήμα 7.2 Κωδικοποίηση
JPEG χωρίς απώλειες. πρόβλεψης.

Συμπίεση με απώλειες (1)

JPEG: Συμπίεση με απώλειες

9
Συμπίεση με απώλειες (2)

Σχήμα 7.3, Πίνακες 7.1 και 7.2

10

Συμπίεση με απώλειες (3)


Σχήμα 7.3
Κωδικοποιητής JPEG σε
βασικό τρόπο
λειτουργίας.

11
Συμπίεση με απώλειες (4)
Πίνακας 7.1 Πίνακας κβάντισης Πίνακας 7.2 Πίνακας κβάντισης
συντελεστών φωτεινότητας. συντελεστών χρώματος.

12

Συμπίεση με απώλειες (5)

Λειτουργίες

13
Συμπίεση με απώλειες (6)

Η σάρωση των συντελεστών


14

Συμπίεση με απώλειες (7)


Σχήμα 7.4 Τρόπος
σάρωσης των συντελεστών
AC.

15
Συμπίεση με απώλειες (8)
• Η κωδικοποίηση
των συντελεστών
DC

16

Συμπίεση με απώλειες (9)


Η κωδικοποίηση των συντελεστών AC Πίνακας 7.3 Πίνακας κατηγοριοποίησης
των συντελεστών DC.

17
Συμπίεση με απώλειες (10)
Πίνακας 7.4 Κωδικοποίηση Huffman για Πίνακας 7.5 Κωδικοποίηση Huffman του
τις κατηγορίες των συντελεστών DC. πρώτου συμβόλου των συντελεστών ΑC.

18

Συμπίεση με απώλειες (11)

19
Συμπίεση με απώλειες (12)

20

Εκτεταμένος τρόπος συμπίεσης –


Extended mode

Ο εκτεταμένος τρόπος συμπίεσης και οι συντελεστές

21
Ιεραρχικός τρόπος συμπίεσης –
Hierarchical mode (1)

Διαδικασία στον ιεραρχικό τρόπο συμπίεσης

22

Ιεραρχικός τρόπος συμπίεσης –


Hierarchical mode (2)
Σχήμα 7.5 Ιεραρχικός
τρόπος κωδικοποίησης.

23
Ιεραρχικός τρόπος συμπίεσης –
Hierarchical mode (3)
Σχήμα 7.6 Ιεραρχικός
κωδικοποιητής τριών
επιπέδων.

24

Ιεραρχικός τρόπος συμπίεσης –


Hierarchical mode (4)

Παράδειγμα 7.1
Να κωδικοποιηθεί σύμφωνα
με το πρότυπο JPEG η
ακόλουθη υπο-εικόνα:

25
Ιεραρχικός τρόπος συμπίεσης –
Hierarchical mode (5)

Βήματα για την κωδικοποίηση :αφαίρεση και μετασχηματισμός DCT

26

Ιεραρχικός τρόπος συμπίεσης –


Hierarchical mode (6)

Βήματα για την κωδικοποίηση: Κβάντιση και αντίστροφος μετασχηματισμός

27
Ιεραρχικός τρόπος συμπίεσης –
Hierarchical mode (7)

• Συμπίεση εικόνας με το
πρότυπο JPEG.

• 7.5

28

Ιεραρχικός τρόπος συμπίεσης –


Hierarchical mode (8)

Κωδικοποίηση πίνακα κβαντισμένων συντελεστών


29
Ιεραρχικός τρόπος συμπίεσης –
Hierarchical mode (9)

Κωδικοποίηση AC συντελεστών

30

Ιεραρχικός τρόπος συμπίεσης –


Hierarchical mode (10)
Παράδειγμα 7.2

31
Ιεραρχικός τρόπος συμπίεσης –
Hierarchical mode (11)

32

Ιεραρχικός τρόπος συμπίεσης –


Hierarchical mode (12)
• Συμπέρασμα

33
Ιεραρχικός τρόπος συμπίεσης –
Hierarchical mode (13)
Παράδειγμα 7.3 Το παρακάτω πρόγραμμα ανασυνθέτει την
εικόνα με την προϋπόθεση ότι αυτή έχει
κωδικοποιηθεί με το παραπάνω πρόγραμμα.
Το πρόγραμμα για λόγους απλότητας θεωρεί
ότι έχει μεσολαβήσει η αποκωδικοποίηση
Huffman, δηλαδή δεν συμπεριλαμβάνει τον
αλγόριθμο αποκωδικοποίησης Huffman.

34

Ιεραρχικός τρόπος συμπίεσης –


Hierarchical mode (14)

Πρόγραμμα

35
Ιεραρχικός τρόπος συμπίεσης –
Hierarchical mode (15)

Πρόγραμμα συνέχεια

36

Ιεραρχικός τρόπος συμπίεσης –


Hierarchical mode (16)

(α) Ανακατασκευή εικόνας με το


πρότυπο JPEG. (β) Μεγέθυνση μέρους
της εικόνας.

37
Ενότητα 8 : Πρότυπο συμπίεσης JPEG2000

Σκοποί ενότητας
• Σκοπός της ενότητας αυτής είναι να
κατανοήσετε το πρότυπο συμπίεσης εικόνων
JPEG2000.

4
Περιεχόμενα ενότητας
 Το πρότυπο συμπίεσης εικόνας JPEG2000
 Σύγκριση των προτύπων συμπίεσης

Το πρότυπο συμπίεσης εικόνας


JPEG2000 (1)
• Πρότυπο JPEG2000

• Προεπεξεργασία
(Preprocessing)

6
Το πρότυπο συμπίεσης εικόνας
JPEG2000 (2)

Ολίσθηση συνεχούς
συνιστώσας

Χρωματικός
μετασχηματισμός

Το πρότυπο συμπίεσης εικόνας


JPEG2000 (3)
Χρωματικός
μετασχηματισμός

Κωδικοποιητής (core
encoder)

8
Το πρότυπο συμπίεσης εικόνας
JPEG2000 (4)
Σχήμα 8.1 Μονάδα
κωδικοποίησης
JPEG2000. Η κάθε
χρωματική συνιστώσα
κωδικοποιείται
ανεξάρτητα, αφού έχει
προηγηθεί η
διαδικασία
προεπεξεργασίας.

Το πρότυπο συμπίεσης εικόνας


JPEG2000 (5)
Κβάντιση Σχήμα 8.2 Ομοιόμορφος
κβαντιστής με νεκρή ζώνη.

10
Το πρότυπο συμπίεσης εικόνας
JPEG2000 (6)
• Κβάντιση

• Εντροπία (μέρος Α)

11

Το πρότυπο συμπίεσης εικόνας


JPEG2000 (7)
• Εντροπία (μέρος Β)

12
Το πρότυπο συμπίεσης εικόνας
JPEG2000 (8)
• Μετά- επεξεργασία
(Post processing)

13

Το πρότυπο συμπίεσης εικόνας


JPEG2000 (9)
• Δυνατότητες
προτύπου

14
Το πρότυπο συμπίεσης εικόνας
JPEG2000 (10)
Σχήμα 8.3 Δομή τελικά
παραγόμενου bit-stream
με το πρότυπο JPEG2000.

15

Το πρότυπο συμπίεσης εικόνας


JPEG2000 (11)
Σχήμα 8.4 Περιοχή
ενδιαφέροντος (ROI) με
καλύτερη ποιότητα από
την υπόλοιπη εικόνα
(background).

16
Το πρότυπο συμπίεσης εικόνας
JPEG2000 (12)
Σχήμα 8.5 Μεγέθυνση των
συντελεστών μιας περιοχής
ενδιαφέροντος (ROI). (α) Ο
ελάχιστος συντελεστής ROI
έχει μέγεθος συγκρίσιμο με
συντελεστές του υπόβαθρου.
(β) Ο ελάχιστος συντελεστής
ROI έχει μέγεθος μεγαλύτερο
από όλους τους συντελεστές
υπόβαθρου.

17

Το πρότυπο συμπίεσης εικόνας


JPEG2000 (13)
Κλιμάκωση

Κλιμάκωση ποιότητας

18
Το πρότυπο συμπίεσης εικόνας
JPEG2000 (14)
Σχήμα 8.6
Αποκωδικοποίηση με
μεταβλητή ανάλυση.

19

Το πρότυπο συμπίεσης εικόνας


JPEG2000 (15)
Σχήμα 8.7 Κλιμάκωση
ποιότητας (SNR
scalability).

20
Το πρότυπο συμπίεσης εικόνας
JPEG2000 (16)

• Ελαστικότητα σε
σφάλμα

21

Το πρότυπο συμπίεσης εικόνας


JPEG2000 (17)

Σχήμα 8.8 Το αποτέλεσμα


παρεμβολής σφάλματος
ενός bit σε ένα
κωδικοποιητή SPIHT ή
JPEG2000.

22
Σύγκριση των προτύπων συμπίεσης (1)
Μέρος Α’

23

Σύγκριση των προτύπων συμπίεσης (2)


Μέρος Β’

24
Σύγκριση των προτύπων συμπίεσης (3)
Σχήμα 8.9 Η αντικειμενική
Η απόδοση του JPEG2000 απόδοση διαφόρων τεχνικών
συμπίεσης με απώλειες.

25

Σύγκριση των προτύπων συμπίεσης (4)

Σχήμα 8.10 Η υποκειμενική


απόδοση συμπίεσης με
απώλειες της εικόνας “ski”
στα 0.25 bpp. (α) JPEG. (β)
JPEG2000.

26
Σύγκριση των προτύπων συμπίεσης (5)

Σχήμα 8.11 Η υποκειμενική


απόδοση συμπίεσης με
απώλειες της εικόνας
“cmpnd1” στα 0.5 bpp. (α)
JPEG. (β) JPEG2000.

27

Σύγκριση των προτύπων συμπίεσης (6)

• Πίνακες
8.1 και 8.2

28
Σύγκριση των προτύπων συμπίεσης (7)
Πίνακας 8.1 Συντελεστής συμπίεσης Πίνακας 8.2 Μέση τιμή PSNR για 200
αλγορίθμων για συμπίεση χωρίς μεταδόσεις της εικόνας “café” σε ένα
απώλειες. κανάλι με θόρυβο.

29

Ενότητα 9 : Κωδικοποίηση βίντεο


Πρότυπο συμπίεσης MPEG
Σκοποί ενότητας
• Σκοπός της ενότητας αυτής είναι να
εξοικειωθείτε με το πρότυπο συμπίεσης
βίντεο MPEG.

Περιεχόμενα ενότητας
 Κωδικοποίηση βίντεο
 Ψηφιακό βίντεο
 Συμπίεση βίντεο
 Εκτίμηση κίνησης
 Τεχνικές ταιριάσματος μπλοκ
 Γενική μορφή ενός video codec
 Το πρότυπο συμπίεσης MPEG-1

5
Κωδικοποίηση βίντεο (1)

Αναλογικό βίντεο

Κωδικοποίηση βίντεο (2)


Σχήμα 9.1 Τρόπος
σάρωσης αναλογικού
βίντεο. (α) Προοδευτική
σάρωση.(β) Συνεπλεγμένη
σάρωση.

Αναλογικό βίντεο και


χρωματικό σύστημα

7
Ψηφιακό Βίντεο (1)

Χαρακτηριστικά του ψηφιακού βίντεο

Ψηφιακό Βίντεο (2)

Τύποι πλαισίου
ψηφιακού βίντεο

Σχήμα 9.2 Τρόπος ανάλυσης


των χρωματικών συνιστωσών
στο ψηφιακό βίντεο. (α) Θέση
των pixels για ανάλυση 4:2:0.
(β)Τα macroblocks για
φωτεινότητα και χρωματικές
συνιστώσες.

9
Ψηφιακό Βίντεο (3)

Πίνακας 9.1 Οριζόντια και


κάθετη ανάλυση των
χρωματικών συνιστωσών
ως προς την ανάλυση της
φωτεινότητας.

Τύποι ψηφιακού βίντεο


Α μέρος

10

Ψηφιακό Βίντεο (4)


Τύποι ψηφιακού βίντεο
Β μέρος

Πίνακας 9.2
Χαρακτηριστικά διαφόρων
μορφών ψηφιακού βίντεο.

11
Συμπίεση βίντεο (1)

Κωδικοποίηση πρόβλεψης Α’ μέρος


12

Συμπίεση βίντεο (2)


Κωδικοποίηση πρόβλεψης
Β’ μέρος

Σχήμα 9.3 DPCM codec.


(α) Κωδικοποιητής. (β)
Αποκωδικοποιητής.

13
Εκτίμηση κίνησης –
Motion estimation (1)

Μέρος Α

14

Εκτίμηση κίνησης –
Motion estimation (2)
Σχήμα 9.4 Πεδίο κίνησης
ενός πλαισίου.

Μέρος Β

15
Εκτίμηση κίνησης –
Motion estimation (3)

Αλγόριθμος ταιριάσματος μπλοκ

16

Εκτίμηση κίνησης –
Motion estimation (4)

Διαδικασία πρόβλεψης, εκτίμησης κίνησης, υπολειπόμενο πλαίσιο

17
Εκτίμηση κίνησης –
Motion estimation (5)
Σχήμα 9.5 Ο αλγόριθμος
ΒΜΑ μεταξύ δυο διαδοχικών
πλαισίων.

18

Εκτίμηση κίνησης –
Motion estimation (6)

Σχήμα 9.6 Ο τρόπος


ψαξίματος για την εύρεση
του αντίστοιχου μπλοκ.

19
Εκτίμηση κίνησης –
Motion estimation (7)
Σχήμα 9.7 Η διαδικασία
εκτίμησης της κίνησης μεταξύ
διαδοχικών πλαισίων και
πρόβλεψης του τρέχοντος
πλαισίου. (α) Πλαίσιο k. (β)
Πλαίσιο k+1. (γ) Πρόβλεψη
τρέχοντος πλαισίου. (δ)
Υπολειπόμενο πλαίσιο.

20

Τεχνικές ταιριάσματος μπλοκ (1)

Οι βασικές τεχνικές, Μέρος Α


21
Τεχνικές ταιριάσματος μπλοκ (2)

Οι βασικές τεχνικές, Μέρος Β


22

Τεχνικές ταιριάσματος μπλοκ (3)

Πίνακας 9.3 Πολυπλοκότητα


των αλγορίθμων αναζήτησης
κατά την εκτίμηση κίνησης.

23
Γενική μορφή ενός video codec (1)

Κωδικοποιητές και αποκωδικοποιητές

24

Γενική μορφή ενός video codec (2)

Σχήμα 9.8 Μπλοκ


διάγραμμα ενός
κωδικοποιητή πρόβλεψης
κίνησης.

25
Γενική μορφή ενός video codec (3)
Σχήμα 9.9 Μπλοκ διάγραμμα του
αποκωδικοποιητή ενός video
codec.

Εκτιμητής κίνησης,
Μετασχηματισμός DCT,
Κβαντιστής Quantizer

26

Γενική μορφή ενός video codec (4)

Κωδικοποίηση μεταβλητού μήκους, Αναπαραγωγή πλαισίου, Απομονωτής,


Αποκωδικοποιητής
27
Το πρότυπο συμπίεσης MPEG-1 (1)

28

Το πρότυπο συμπίεσης MPEG-1 (2)

29
Το πρότυπο συμπίεσης MPEG-1 (3)

30

Το πρότυπο συμπίεσης MPEG-1 (4)


Σχήμα 9.10 Η σχέση μεταξύ
των πλαισίων Ι-Ρ-Β.

Η δομή του βίντεο,


Μέρος Α

31
Το πρότυπο συμπίεσης MPEG-1 (5)

Η δομή του βίντεο, Μέρος Β


32

Το πρότυπο συμπίεσης MPEG-1 (6)


Σχήμα 9.11 Η ιεραρχική
δομή του MPEG-1.

33
Το πρότυπο συμπίεσης MPEG-1 (7)
Πίνακας 9.4 Τύποι
ΜΒ στο MPEG-1.

34

Το πρότυπο συμπίεσης MPEG-1 (8)

Μπλοκ
Ο MPEG-1 κωδικοποιητής, Μέρος Α
35
Το πρότυπο συμπίεσης MPEG-1 (9)

Ο MPEG-1 κωδικοποιητής,
Μέρος Β

Σχήμα 9.12 Ο
κωδικοποιητής του
MPEG-1.

36

Το πρότυπο συμπίεσης MPEG-1 (10)

Ανάλυση σχήματος 9.13


Η εκτίμηση της κίνησης, Μέρος Α
37
Το πρότυπο συμπίεσης MPEG-1 (11)
Σχήμα 9.13 Πίνακες βάρους
για την κβάντιση των
συντελεστών ενός μπλοκ. (α)
ΜΒ σε INTRA mode. (β) ΜΒ σε
INTER mode. (γ) Τεχνική
σάρωσης zig-zag.

Η εκτίμηση της κίνησης,


Μέρος Β
Ανάλυση σχήματος 9.14

38

Το πρότυπο συμπίεσης MPEG-1 (12)


Σχήμα 9.14 Η εκτίμηση της
κίνησης για την κωδικοποίηση
ενός πλαισίου. (α) Πλαίσιο
στη χρονική στιγμή Ν. (β)
Πλαίσιο στη χρονική στιγμή
Ν-1 το οποίο έχει
ανασυσταθεί και φυλαχτεί
στη μνήμη του κωδικοποιητή
MPEG-1. (γ) Διαφορά των δυο
πλαισίων χωρίς εκτίμηση
κίνησης. (δ) Υπολειπόμενο
πλαίσιο μετά την εκτίμηση
κίνησης.

39
Το πρότυπο συμπίεσης MPEG-1 (13)

MPEG-1
Aνάλυση σχήματος 9.15
40

Το πρότυπο συμπίεσης MPEG-1 (14)

Σχήμα 9.15
Τηλεσκοπική μέθοδος
εκτίμησης της κίνησης
στο MPEG-1.

Πρόβλεψη, Μέρος Α

41
Το πρότυπο συμπίεσης MPEG-1 (15)

Πρόβλεψη, Μέρος Β
Η κωδικοποίηση των πλαισίων, Μέρος Α
42

Το πρότυπο συμπίεσης MPEG-1 (16)

Η κωδικοποίηση των πλαισίων, Μέρος Β

43
Το πρότυπο συμπίεσης MPEG-1 (17)

Ο αποκωδικοποιητής

Σχήμα 9.16 Μπλοκ


διάγραμμα
αποκωδικοποιητή
MPEG-1.

44

Το πρότυπο συμπίεσης MPEG-1 (18)

Λειτουργίες αποκωδικοποιητή

45

You might also like