ΑΣΚΗΣΗ 3 ΒΕΛΤΙΩΣΗ ΕΙΚΟΝΑΣ ΜΕΛΕΤΗ ΙΣΤΟΓΡΑΜΜΑΤΟΣ Αντικείμενο: Εξαγωγή ιστογράμματος εικόνας, απλοί μετασχηματισμοί με αυτό, ισοστάθμιση ιστογράμματος. Εφαρμογή βασικών παραθύρων με την βοήθεια του ΜΑΤLAB και εφαρμογές στην βελτίωση εικόνας. 1. Εισαγωγή. Ένα από τα πιο χαρακτηριστικά στοιχεία μιας εικόνας που προσεγγίζει ένα φυσικό μοντέλο χρώματος είναι η φωτεινότητά της. Ένα δυνατός τρόπος αναπαράστασης και επεξεργασίας της πληροφορίας αυτής χρησιμοποιεί την έννοια του ιστογράμματος της εικόνας. Το ιστόγραμμα μιας εικόνας είναι εύκολο να προσδιοριστεί καθώς δεν είναι τίποτα άλλο από την κατανομή Η(pix_val) των εντάσεων των φωτεινοτήτων των εικονοστοιχείων μιας εικόνας. Σε κανονικοποιημένη μορφή κάθε τιμή του αρχικού ιστογράμματος διαιρείται με το πλήθος των στοιχείων της εικόνας ώστε το συσσωρευτικό ιστόγραμμα να κανονικοποιείται στην μονάδα. Η μορφή του ιστογράμματος παρέχει αρκετές και σημαντικές πληροφορίες σχετικά με τα χαρακτηριστικά της εικόνας και απεικονίζεται με ένα γράφημα που στον οριζόντιο άξονα έχει τις φωτεινότητες από 0-255 (ή 1 στην περίπτωση που η εικόνα είναι τύπου double (8 bytes) ή single (4bytes)) και στον κατακόρυφο άξονα έχει το πλήθος των εικονοστοιχείων που λαμβάνουν την τιμή της φωτεινότητας. Συγκεκριμένα ένα ιστόγραμμα h(k) μιας εικόνας NxM με αποχρώσεις του γκρί στην περιοχή [0, L-1] μπορεί να προσδιοριστεί ως: hk ( ) 1, αν Ι(i,j)=k hk ( ) (1) hk ( ), διαφορετικά Όπου {i, j}{0, 1, L-1} Ένα ιστόγραμμα με σχετικά μικρή διασπορά (στενό) χαρακτηρίζει μια εικόνα χαμηλής διαφοροποίησης του υποβάθρου από το περιεχόμενο. Αντίθετα, μια εικόνα υψηλής διασποράς, ιδιαιτέρως όταν έχει τουλάχιστον δύο λοβούς χαρακτηρίζει μια εικόνα με σημαντική πληροφορία σε αρκετές αποχρώσεις του γκρί. Τέλος η σημασία του ιστογράμματος
γίνεται φανερή καθώς αυτό παραμένει σχετικά αμετάβλητο σε παραμορφώσεις της εικόνας όπως η περιστροφή, η μερική μετατόπιση και η αντανάκλαση. Η επεξεργασία του ιστογράμματος μιας εικόνας αποτελεί την πιο απλή μέθοδο επεξεργασίας εικόνας χωρίς όμως η πράξη αυτή να υπολείπεται σε σπουδαιότητα. Αποτελεί μετασχηματισμό σημείου, δηλαδή πρόκειται για μια πράξη της μορφής h( k) T[ h( k)] όπου η συνάρτηση [] περιγράφει τον μετασχηματισμό ιστογράμματος δηλαδή τον τρόπο με τον οποίο απεικονίζουμε την φωτεινότητα της εισόδου h( ) σε μία άλλη τιμή φωτεινότητας εξόδου h ( ). Ιδιαίτερως, οι τεχνικές τροποποίησης ιστογράμματος μετασχηματίζουν την αρχική ζώνη φωτεινότητας με την βοήθεια μιας γραμμικής ή μη συνάρτησης μετασχηματισμού []. Με αυτόν τον τρόπο οι φωτεινότητες της εικόνας απεικονίζονται σε μια νέα ζώνη και προκύπτει ένα νέο ιστόγραμμα από την σχέση: h( k) T[ h( k)], k 0,..., L 1 (2) έτσι ώστε h( k) {0,..., L 1}. Συνοπτικά μπορούμε να διακρίνουμε τους κυριότερους μετασχηματισμούς φωτεινότητας στις παρακάτω κύριες κατηγορίες: α) Γραμμικοί και μη μετασχηματισμοί φωτεινότητας στους οποίους συμπεριλαμβάνονται: Η αρνητική εικόνα. Η Μεταβολή της αντίθεσης. Ο μετασχηματισμός-γ (gama intensity transformation). Ο λογαριθμικός και εκθετικός μετασχηματισμός. β) Ισοστάθμιση ιστογράμματος (histogram equalization) κατά τον οποίο το ιστόγραμμα τείνει να προσεγγίσει την ομοιόμορφη κατανομή. ΕΡΓΑΣΤΗΡΙΑΚΗ ΔΙΑΔΙΚΑΣΙΑ 1. Υπολογισμός ιστογράμματος. α) Χρησιμοποιείστε το MATLAB και υπολογίστε την κατανομή των pixels στις διάφορες στάθμες (τιμές) της εικόνας cameraman.tif. Χρησιμοποιείστε την συνάρτηση stem έτσι ώστε να το απεικονίσετε στην οθόνη σας. Στην συνέχεια χρησιμοποιείστε την εσωτερική συνάρτηση του MATLAB imhist για να απεικονίσετε το ιστόγραμμα. Προβείτε σε συγκρίσεις μεταξύ τους. Τι παρατηρείτε; 2
2. Γραμμικοί και μη μετασχηματισμοί ιστογράμματος. α) Για την εικόνα cameraman χρησιμοποιείστε την σχέση: lumout ( lumin ) που αντιστοιχεί σε γραμμικές διαδικασίες μεταβολής ιστογράμματος ώστε να μετακινήσετε κάθε pixel φωτεινότητας z-( lum in ) της εικόνας που βρίσκεται στο διάστημα [α,β] γραμμικά στο διάστημα [γ,δ] της μεταβλητής z'-( lum out ). Συγκεκριμένα εκτελέστε τα ακόλουθα βήματα: Συμπιέσατε αυτές στο διάστημα [0, 127] Στην συνέχεια συμπιέσατε αυτές στο διάστημα [128, 255] Τέλος, αντιστρέψατε αυτές συμμετρικά ώς πρός το 128 (το αρχικό ιστόγραμμα). Για κάθε μια από τις παραπάνω εργασίες απεικονίστε την προκύπτουσα εικόνα και παρουσιάστε το προκύπτων ιστόγραμμα. Τι παρατηρείτε στην περίπτωση που ο μετασχηματισμός του ιστογράμματος είναι γραμμικός; β) Χρησιμοποιείστε τον Μετασχηματισμό έντασης γ δηλαδή μεταβάλλετε την τιμή των pixel εξόδου σύμφωνα με την σχέση: (pixel_εξόδου)=(pixel_εισόδου) 1/γ όπου η τιμή του γ λαμβάνει τις τιμές γ={0.5 2, 2.5, 3, 5}. Απεικονίστε την προκύπτουσα εικόνα. Θεωρείστε ότι στην συγκεκριμένη περίπτωση η μέγιστη τιμή της εικόνας είναι 1 (λευκό) ώστε να μην έχουμε φαινόμενα κόρου. Ένα χαρακτηριστικό παράδειγμα απεικόνισης της εικόνας όταν γ=1.7 απεικονίζεται στην εικόνα 1. Τι παρατηρείτε στην περίπτωση που ο μετασχηματισμός του ιστογράμματος δεν είναι γραμμικός; Εικόνα 1. Αρχική εικόνα και τελική με γ=1.7 β) Χρησιμοποιείστε τον λογαριθμικό μετασχηματισμό ( g) bln(1 a g) όπου ο συντελεστής b χρησιμοποιείται για την κλιμάκωση των φωτεινοτήτων εξόδου. Ο συντελεστής a συνήθως ισούται με την μονάδα. Αν θεωρήσουμε ως προυπόθεση ότι πρέπει [0] 0, Τ[255]=255 τότε η τιμή του b θα πρέπει να γίνει ίση με: 255 b (3) ln(1 255 a) 3
3. Ισοστάθμιση ιστογράμματος. Αλγοριθμικά η μέθοδος υπολογισμού της ισοστάθμισης ιστογράμματος έχει ως εξής: Υπολογισμός του επιθυμητού αριθμού n των εικονοστοιχείων (pixels) τής διαμέρισης του τελικού ιστογράμματος ως εξής: Συνολικός αριθμός pixels N n Αριθμός σταθμών εντάσεως Μετατροπή του ιστογράμματος της αρχικής εικόνας σε αθροιστικό ιστόγραμμα. Αυτό επιτυγχάνετε θεωρώντας ως C J τον αριθμό των εικονοστοιχείων από την στάθμη 0 έως την j δηλαδή το συσσωρευτικό ιστόγραμμα. C j Υπολογισμός του ακεραίου μέρους N. Το μέγεθος αυτό αποτελεί την νέα τιμή εντάσεως που θα έχει η αρχική κλάση j. Ένας τρόπος αναπαράστασης της μεθόδου απεικονίζεται στον παρακάτω πίνακα 1 για μία υποθετική εικόνα με μέγεθος 512x512 και αρχικό ιστόγραμμα Η 1. Πίνακας 1. Ισοστάθμιση ιστογράμματος. Τελικές τιμές Αρχικές Ιστόγραμμα Συσσωρευτικό Εικονοστοιχείων τιμές Η εικονοστοιχείων 1 Ιστόγραμμα (C J ) C j N 0 1311 1311 0 1 2622 3933 0 2 5243 9176 0 3 9176 18352 1 4 13108 31460 1 5 24904 56364 3 6 30146 86510 5 7 45875 132385 8 8 58982 191367 11 9 48496 239863 14 10 11796 251659 15 11 3932 255591 15 12 3932 259623 15 4
13 2621 262144 15 14 0 262144 15 15 0 262144 15 Με βάση τον παραπάνω αλγόριθμο: α) Απεικονίστε στο MATLAB την εικόνα synth_imag_hist_eq.bmp. Εξετάστε το ιστόγραμμά της με την βοήθεια της imhist και δημιουργείστε το συσσωρευτικό ιστόγραμμα της εικόνας. Στην συνέχεια δημιουργείστε κώδικα ώστε να ισοσταθμίσετε το ιστόγραμμα της εικόνας. Απεικονίστε την εικόνα, το ιστόγραμμά της καθώς και το συσσωρευτικό ιστόγραμμα της. Ένα χαρακτηριστικό παράδειγμα εικόνας πρίν και μετά την ισοστάθμιση απεικονίζεται στην εικόνα 2. Απεικονίστε το νέο ιστόγραμμα της εικόνας μετά την ισοστάθμιση. Εικόνα 2. Αρχική και εξισορροπημένη γκρί εικόνα. β) Ισοσταθμίστε το ιστόγραμμα στην έγχρωμη εικόνα football.jpg. Συγκεκριμένα, μετασχηματίστε τις RGB συνιστώσες της εικόνας στις ΥΙQ συνιστώσες και προβείτε στην ισοστάθμιση ιστογράμματος της συνιστώσας φωτεινότητας. Στην συνέχεια μετασχηματίστε τις συνιστώσες ΥΙQ στις συνιστώσες RGB. Για τις μετατροπές των συστημάτων (RGB, YIQ) xρησιμοποιείστε τις έτοιμες συναρτήσεις βιβλιοθήκης του MATLAB rgb2ntsc και ntsc2rgb. Ένα χαρακτηριστικό παράδειγμα εικόνας πρίν και μετά την ισοστάθμιση απεικονίζεται στην εικόνα 3. Εικόνα 3. Αρχική και εξισορροπημένη έγχρωμη εικόνα. 5