Αρχική Σελίδα | Ομάδα Ανάπτυξης | Επικοινωνία

  




Κεντρική Σελίδα

Τεχνικά Αρθρα
   Κατά Κατηγορία
   Κατά Ημερομηνία

Πληροφορίες
Υποβολή Aρθρου
Επικοινωνία
Όροι Χρήσης
   

Τα Χρωματικά Μοντέλα RGB και HSV


Tεχνικά Aρθρα / Ψηφιακή Επεξεργασία Εικόνας /

Θεματική Ενότητα :     Ψηφιακή Επεξεργασία Εικόνας
Τίτλος Αρθρου :     Τα Χρωματικά Μοντέλα RGB και HSV
Ημερομηνία Δημοσίευσης :     Πέμπτη, 12 Μαϊου 2005
Συγγραφέας :     Μπροκαλάκης Ανδρέας
Επικοινωνία :     mprokala@ceid.upatras.gr
Σχετιζόμενα Aρθρα :     Εξίσωση Ιστογράμματος


Περίληψη

Ένα χρωματικό μοντέλο είναι ένας καθορισμένος τρόπος να αναπαρασταθεί κάθε χρώμα με μαθηματικούς όρους. Τα περισσότερα μοντέλα χρησιμοποιούν ένα τριδιάστατο σύστημα συντεταγμένων. Κάθε σημείο μέσα στον υποχώρο του συστήματος αναπαριστά και ένα μοναδικό χρώμα. Σε χρήση σήμερα υπάρχει ένας μεγάλος αριθμός από χρωματικά μοντέλα : το 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)









Αρχική Σελίδα | Αναζήτηση | Ομάδα Ανάπτυξης | Επικοινωνία | Όροι Χρήσης
TechArticles.GR @2005 | Some rights reserved