Περίληψη
Ένα χρωματικό μοντέλο είναι ένας καθορισμένος τρόπος να αναπαρασταθεί κάθε χρώμα με μαθηματικούς όρους. Τα περισσότερα μοντέλα χρησιμοποιούν ένα τριδιάστατο σύστημα συντεταγμένων. Κάθε σημείο μέσα στον υποχώρο του συστήματος αναπαριστά και ένα μοναδικό χρώμα. Σε χρήση σήμερα υπάρχει ένας μεγάλος αριθμός από χρωματικά μοντέλα : το RGB (Red, Green, Blue) είναι κυρίως hardware oriented , τα HSI (Hue, Saturation, Intensity) και HSV (Hue, Saturation, Value) που είναι περισσότερο διαισθητικά και πιο κοντά σε μια ανθρώπινη καλλιτεχνική προσέγγιση, τα CMY / CMYK (Cyan, Magenta, Yellow / Cyan, Magenta, Yellow, Black) τα οποία χρησιμοποιούνται κυρίως στα εκτυπωτικά συστήματα και το YIQ (Y - axes, In - phase, Quadrature) που χρησιμοποιείται στην τηλεόραση.
Το άρθρο αυτό επικεντρώνεται στα μοντέλα RGB και HSV. Τα μοντέλα αυτά θα παρουσιαστούν και θα δειχθούν τρόποι για την μετάβαση από το ένα μοντέλο στο άλλο. Για να επιδειχθεί η διαφορά της επεξεργασίας εικόνων όταν η επεξεργασία γίνεται σε ένα από τα δύο μοντέλα θα παρουσιαστεί το αποτέλεσμα της εφαρμογής της Ολικής Εξίσωσης Ιστογράμματος σε 2 διαφορετικές εικόνες.
Προαπαιτούμενα
Για την κατανόηση των εννοιών που περικλείουν τα χρωματικά μοντέλα δεν απαιτούνται ιδιαίτερες γνώσεις εκ μέρους του αναγνώστη. Παρόλα αυτά, μικρή εξοικίωση με την ανάγνωση κώδικα απαιτείται για την κατανόηση της διαδικασίας μετατροπής από το ένα σύστημα στο άλλο, καθώς αυτή παρουσιάζεται σε μορφή ψευδοκώδικα. Επίσης, ο αναγνώστης παραπέμπεται στο άρθρο "Εξίσωση Ιστογράμματος", όπου αναλύεται η αντίστοιχη τεχνική.
Το RGB Χρωματικό Μοντέλο
Στο RGB μοντέλο , τα χρώματα εμφανίζονται με βάση τις πρωταρχικές φασματικές συνιστώσες του κόκκινου, πράσινου και μπλε. Το μοντέλο αυτό βασίζεται σε ένα καρτεσιανό τριδιάστατο σύστημα συντεταγμένων. Ο χρωματικός υποχώρος που ενδιαφέρει είναι ο κύβος που εικονίζεται στο σχήμα που ακολουθεί (Σχήμα 1), του οποίου οι τρεις γωνίες πάνω στους άξονες είναι τα RGB χρώματα, οι άλλες τρεις γωνίες είναι τα χρώματα κίτρινο, magenta και cyan, στην αρχή των αξόνων είναι το μαύρο και το άσπρο τοποθετημένο στην πιο απομακρυσμένη γωνία από το μαύρο.
Σχήμα 1. Σχηματικό του RGB χρωματικού κύβου
Οι εικόνες που αναπαριστώνται στο RGB χρωματικό μοντέλο αποτελούνται από 3 συστατικές εικόνες, μία για κάθε πρωταρχικό χρώμα. Ο αριθμός των bits που χρησιμοποιείται για να αναπαρασταθεί κάθε pixel στον RGB χώρο ονομάζεται pixel depth (βάθος pixel). A ν η κάθε συστατική εικόνα (δηλαδή οι εικόνες που αντιστοιχούν στα τρία βασικά χρώματα) της RGB εικόνας είναι μια 8- bit εικόνα, τότε τα pixels της RGB εικόνας θα έχουν βάθος ίσο με 24 bits .
Το HSV Χρωματικό Μοντέλο
Το HSV ( Hue , Saturation , Value ) χρωματικό μοντέλο περιγράφει ένα χρώμα με τρόπο ανάλογο με αυτόν που το αντιλαμβάνεται το ανθρώπινο μάτι.
"Hue" είναι αυτό που ονομάζεται «χρώμα» -- είναι η χρωματική ιδιότητα που περιγράφει ένα καθαρό χρώμα. Παραδείγματα είναι το κίτρινο, το κόκκινο, το μαύρο. "Saturation" είναι ένα μέτρο του βαθμού που έχει ένα καθαρό χρώμα όταν αλλοιωθεί από την μίξη του με το λευκό. Έτσι, για παράδειγμα, το ροζ και το προφυρό είναι διαφορετικές "saturations" του κόκκινου. Αυξομειώνοντας την τιμή της παραμέτρου saturation αντιστοιχεί στην πρόσθεση ή αφαίρεση λευκού. Η φωτεινότητα είναι το τελευταίο μέτρο (το μοντέλο αντιστοιχίζεται στο "value") και είναι ένας υποκειμενικός παράγοντας που είναι στην πραγματικότητα δύσκολο να μετρηθεί. Ενσωματώνει την αχρωματική έννοια της έντασης και είναι ένας από τους παράγοντες κλειδιά στην περιγραφή της χρωματικής αίσθησης. Στο μοντέλο αυτό αυξομειώνοντας την τιμή του value είναι σαν προσθέτουμε ή αφαιρούμε μαύρο.
Σε αντίθεση με το RGB μοντέλο, στο HSV μοντέλο αποσυνδέεται η χρωματική πληροφορία (hue και saturation) από την πληροφορία έντασης. Έτσι το HSV μοντέλο είναι ιδανικό για την ανάπτυξη αλγορίθμων επεξεργασίας εικόνας που βασίζονται σε χρωματικές περιγραφές που είναι φυσικές και διαισθητικές για τους ανθρώπους.
Ο προσδιορισμός του συστήματος συντεταγμένων του HSV μοντέλου, προκύπτει από τον χρωματικό κύβο του RGB μοντέλου. Αν ειδωθεί ο RGB κύβος κατά μήκος της διαγωνίου που στο παραπάνω σχήμα (Σχήμα 1) έχει δειχθεί ότι απεικονίζει το grayscale, είναι δυνατόν να διακριθεί ένα εξάγωνο. Το εξάγωνο αυτό αποτελεί την hexcone του HSV μοντέλου (Σχήμα 2).

Σχήμα 2. Ο εξαγωνικός κώνος του HSV μοντέλου
Τα «καθαρά» χρώματα (κόκκινο, κίτρινο, πράσινο, κυανό, μπλε, magenta) είναι οι γωνίες του κανονικού εξαγώνου. Ως αρχή θεωρείται το κόκκινο (0 μοίρες). Η γωνία από τον άξονα που ορίζει το κόκκινο δίνει την τιμή του hue . Άρα 0 <= hue < 360, με hue = 0 -> red, hue = 60 -> yellow, hue = 120 -> green , hue = 180 -> cyan, hue = 240 -> blue και hue = 300 -> magenta. Η συνιστώσα του διανύσματος στο επίπεδο του εξαγώνου δίνει την τιμή του saturation . Oι τιμές που μπορεί να δεχθεί το saturation είναι μεταξύ 0 και 1, εκφράζοντας το ποσοστό της «καθαρότητας» του σχετιζόμενου hue σε σχέση με τη μέγιστη «καθαρότητα» για saturation = 1. Για s = 0 προκύπτει το grayscale που είναι η διαγώνιος του RGB κύβου και αντιστοιχίζεται στο value του κώνου του HSV συστήματος. Στη κορυφή του κώνου είναι value = 0 και αντιστοιχίζεται στο μαύρο, ενώ το σημείο τομής της κάθετης ευθείας από την κορυφή του κώνου με το επίπεδο του εξαγώνου (στο κέντρο του εξαγώνου) έχει τιμή value = 1 και αντιστοιχίζεται στο λευκό.
Μετατροπές Χρωμάτων από το RGB στο HSV και από το HSV στο RGB
Πέρα από την περιγραφή κάθε χρωματικού μοντέλου, είναι χρήσιμο να υπάρχει η δυνατότητα μετάβασης από τη μια χρωματική αναπαράσταση στην άλλη. Ο τρόπος μετάβασης από το ένα σύστημα στο άλλο παρατίθεται σε μορφή ψευτοκώδικα. Έχει γίνει προσπάθειαι η μορφή του ψευτοκώδικα να είναι πολύ κοντά στην μορφή της scripting γλώσσας του MATLAB για καλύτερη κατανόηση. Οι ψευτοκώδικες που ακολουθούν περιγράφουν τον τρόπο μετατροπής της τιμής ενός pixel από το ένα σύστημα στο άλλο. Η γενίκευση για ολόκληρη την εικόνα είναι περισσότερο από προφανής.
RGB - to - HSV conversion
//θεωρούμε ότι κάθε pixel αποτελείται από τρεις συνιστώσες red, green, blue κάθε
//μία με τιμές από 0 μέχρι 1.
function RGBtoHSV (input:r,g,b , output:h,s,v)
max = Maximum(r,g,b);
min = Minimum(r,g,b);
//Yπολογισμός του value
v = max;
//Yπολογισμός του saturation
if max ~= 0
then
s = (max - min)/max;
else
s = 0;
endif
//Υπολογισμός του hue
if s == 0
then
h = UNDEFINED;
else
delta = max - min;
if r == max
then
h = (g-b)/delta; //το τελικό χρώμα είναι μεταξύ κίτρινου και magenta
elseif g == max
then
h = 2 + (b-r)/delta; //το τελικό χρώμα μεταξύ κυανού και κίτρινου
elseif b == max
then
h = 4 + (r-g)/delta; //το τελικό χρώμα μεταξύ magenta και κυανού
endif
h = h*60; //μετατροπή του h σε μοίρες
if h < 0
then
h = h + 360 //επιβάλλουμε θετικές τιμές στις μοίρες
endif
endif
endfunction
|
HSV - to - RGB conversion
//θεωρούμε ότι κάθε pixel αποτελείται από τρεις συνιστώσες hue, saturation, value
//κάθε μία με τιμές από 0 μέχρι 1, εκτός από hue που παίρνει τιμές από 0 μέχρι 360.
function HSVtoRGB (input:h,s,v , output:r,g,b)
if s == 0 and h = UNDEFINED
then
r = g = b = v; //στην περίπτωση αυτή οι συνιστώσες RGB ορίζονται μονοσήμαντα
//από την τιμή του value
else
if h == 360
then
h = 0;
endif
h = h/60;
i = floor(h);
f = h - i;
p = v*(1-s);
q = v*(1-(s*f));
t = v*(1-(s*(1-f)));
if i == 0
then
r = v; g = t; b = p;
elseif i == 1
then
r = q; g = v; b = p;
elseif i == 2
then
r = p; g = v; b = t;
elseif i == 3
then
r = p; g = q; b = v;
elseif i == 4
then
r = t; g = p; b = v;
elseif i == 5
then
r = v; g = p; b = q;
endif
endif
endfunction
|
Εφαρμογή της Εξίσωσης Ιστογράμματος στα Δύο Συστήματα
Οι ακόλουθες εικόνες έχουν επιλεγεί για να βελτιωθούν με την χρήση της Εξίσωσης Ιστογράμματος.
Οι εικόνες πάνω στις οποίες θα εφαρμοστεί η Εξίσωση Ιστογράμματος
Η Εξίσωση Ιστογράμματος είναι μια αυτόματη διαδικασία που καθορίζει ένα μετασχηματισμό που
αναζητά την παραγωγή μιας εικόνας με ομοιόμορφο ιστόγραμμα των τιμών έντασης. Στο άρθρο
"Εξίσωση Ιστογράμματος" έχει αναλυθεί λεπτομερώς η έννοια του ιστογράμματος όπως επίσης και η
μέθοδος της εξίσωσης ιστογράμματος για grayscale εικόνες. Εφόσον και οι έγχρωμες εικόνες
αποτελούνται από συστατικές εικόνες των βασικών χρωμάτων μπορεί να χρησιμοποιηθεί και στην
περίπτωση της έγχρωμης εικόνας η διαδικασία που περιγράφηκε στο σχετικό άρθρο αρκεί να εφαρμοστεί
στις απαραίτητες συνιστώσες της εικόνας.
Αυτό που έχει σημασία στην έγχρωμη εικόνα είναι να προσδιοριστούν οι συνιστώσες στις οποίες
πρέπει να εφαρμοστεί η εξίσωση ιστογράμματος. Στο RGB σύστημα όλες οι συνιστώσες φέρουν
πληροφορία για τα τονικά χαρακτηριστικά της εικόνας, ενώ αντίθετα στο HSV σύστημα η πληροφορία
αυτή βρίσκεται στην value συνιστώσα. Έτσι, η εξίσωση ιστογράμματος στο RGB σύστημα πρέπει να
εφαρμοστεί σε όλες τις συνιστώσες ενώ αντίθετα στο HSV μονάχα στην value συνιστώσα.
Για την πρώτη εικόνα :
H πρώτη εικόνα
H red συνιστώσα
|
Ιστόγραμμα red συνιστώσας
|
H green συνιστώσα
|
Ιστόγραμμα green συνιστώσας
|
H blue συνιστώσα
|
Ιστόγραμμα blue συνιστώσας
|
Με την εφαρμογή της εξίσωσης ιστογράμματος σε κάθε συνιστώσα προκύπτουν τα ακόλουθα αποτελέσματα :
H αρχική εικόνα
|
H ίδια εικόνα με εξισωμένο ιστόγραμμα
|
Εξισωμένο ιστόγραμμα red συνιστώσας
|
Εξισωμένο ιστόγραμμα green συνιστώσας
|
Εξισωμένο ιστόγραμμα blue συνιστώσας
|
Mε την εφαρμογή της εξίσωσης ιστογράμματος μπορεί να παρατηρηθεί ότι η εικόνα που προέκυψε
έχει φωτιστεί πολύ σε βαθμό μάλλον ενοχλητικό συγκρίνοντας την με την αρχική εικόνα. Βέβαια
δεν μπορεί να παραλειφθεί το γεγονός ότι έχουν αποκαλυφθεί περισσότερες λεπτομέρειες στην
εικόνα που προέκυψε. Παρατηρήστε, για παράδειγμα, την ζυγαριά και την ποδιά της γιαγιάς. Η
σχετικά χαμηλή ποιότητα της εικόνας που προέκυψε οφείλεται στο γεγονός ότι η εξίσωση
ιστογράμματος έχει γίνει για κάθε συνιστώσα ανεξάρτητα, με αποτέλεσμα να προκύπτουν κάποια
λανθασμένα χρώματα. Για τούτο και είναι προτιμότερο να εφαρμοστεί η μέθοδος της εξίσωσης
ιστογράμματος στο HSV σύστημα όπου η πληροφορία για τα χρώματα (hues) είναι σε άλλη συνιστώσα
από την πληροφορία για την φωτεινότητα - τονικότητα (value), όποτε αρκεί να εφαρμοστεί η μέθοδος
μονάχα στην value συνιστώσα.
H αρχική εικόνα
|
H ίδια εικόνα με εξισωμένο ιστόγραμμα στο HSV
|
Iστόγραμμα value συνιστώσας
|
Εξισωμένο ιστόγραμμα value συνιστώσας
|
H αλλαγή σε σχέση με τη προηγούμενη εφαρμογή της εξίσωσης ιστογράμματος είναι σαφέστατα
πολύ πιο θετική. Τα χρώματα έχουν διατηρήσει την ζωντάνια τους και έχει βελτιωθεί αυτό
ακριβώς επιδιώκεται - η φωτεινότητα.
Αντίστοιχα για την δεύτερη εικόνα :
H δεύτερη εικόνα
H red συνιστώσα
|
Ιστόγραμμα red συνιστώσας
|
H green συνιστώσα
|
Ιστόγραμμα green συνιστώσας
|
H blue συνιστώσα
|
Ιστόγραμμα blue συνιστώσας
|
Eφαρμόζεται η εξίσωση ιστογράμματος σε κάθε συνιστώσα της εικόνας οπότε προκύπτουν τα
ακόλουθα αποτελέσματα :
H αρχική εικόνα
|
H ίδια εικόνα με εξισωμένο ιστόγραμμα
|
Εξισωμένο ιστόγραμμα red συνιστώσας
|
Εξισωμένο ιστόγραμμα green συνιστώσας
|
Εξισωμένο ιστόγραμμα blue συνιστώσας
|
Όπως και στην περίπτωση της πρώτης εικόνας, έτσι και εδώ η ποιότητα της εικόνας που προκύπτει
δεν είναι ικανοποιητική. Αναμένοντας καλύτερα αποτελέσματα περνάμε στην εφαρμογή της μεθόδου
στο σύστημα HSV :
H αρχική εικόνα
|
H ίδια εικόνα με εξισωμένο ιστόγραμμα στο HSV
|
Iστόγραμμα value συνιστώσας
|
Εξισωμένο ιστόγραμμα value συνιστώσας
|
Μπορεί να παρατηρηθεί και στην περίπτωση αυτή το πλεονέκτημα της εφαρμογής της
εξίσωσης ιστογράμματος στο σύστημα HSV. Το αποτέλεσμα είναι πάρα πολύ καλό καθώς υπάρχει κέρδος
σε φωτεινότητα, λεπτομέρεια και τελικό οπτικό αποτέλεσμα.
          ΠΗΓΕΣ.
1. Digital Image Processing, Second Edition - Rafael C. Gonzalez, Richard E. Woods
2. Color Perception, Color Models
          (www.cs.princeton.edu/courses/archive/fall99/cs426/lectures/raster/sld015.htm)
3. Colors, Color Models
          (www.siggraph.org/education/materials/HyperGraph/color/color0.htm)
          (support.mediacy.com/answers/showquestion.asp?faq=35&fldAuto=268)
4. Computer Graphics Color Space
          (www.cs.fit.edu/wds/classes/cse5255/cse5255/davis/index.html)
5. HSV to RGB and RGB to HSV conversions
          (wwwzenger.informatik.tu-muenchen.de/lehre/vorlesungen/graphik/info/csc/ COL_25.htm)
|