Farbbild -> Grauwertbild?
-
Wie wandelt man ein Farbbild in eine Grauwertbild um?
z.B. Ein RGB Bild mit 24 Bit, also 8 Bit pro Farbkomponente.bisher mache ich es so:
(R + G +/ 3 = grauwert
Ist das so richtig, oder gibt es da bessere Umwandlungen. Hab mir das examplarisch an 42 Bildern angesehen und war eigentlich zufrieden mit den Ergebnissen
-
Die Frage ist, was Du auf dem Grauwertbild eigentlich darstellen möchtest. Da gibt es generell kein richtig oder falsch. Was Du bisher machst ist die Darstellung der Intensität. Genausogut könntest Du einfach nur einen der 3 Farbkanäle im Grauwertbild darstellen.
Und wenn das Grauwertbild von den Helligkeiten her so auf den Menschen wirken soll, wie es der Mensch auch im Farbbild wahrnimmt, dann musst Du die 3 Farben bei der Umwandlung unterschiedlich stark wichten:
Grau = 0,299*Rot + 0,587*Grün + 0,144*Blau
-
Woher kommt diese Gewichtung? Ich kann mich grau *g* daran erinnern, dass das menschliche Auge für Grüntöne empfindlicher ist als für alle anderen - deshalb die hohe Gewichtung von Grün mit 0,587?
warum wird rot mehr gewichtet als blau? ist das menschliche Auge etwa auch für rote Farbe mehr empfindlich als blaue?
-
ja, je nach prüfung/messung ergibt sich für menschen die helligkeit einer farbe von 0.3 bis 0.4 rotanteil, 0.5 bis 0.6 grünanteil und 0.1 blauanteil.
die messungen variieren weil verschiedene wellenlängen und gesammthelligkeiten zum messen verwendet wurden.
google nach YCbCr oder YUV, dann findest du die farbmodelle und umwandlungen.
-
Vertexwahn schrieb:
warum wird rot mehr gewichtet als blau? ist das menschliche Auge etwa auch für rote Farbe mehr empfindlich als blaue?
Das liegt daran, dass hier auf der Erde ziemlich viel blau vorkommt. U.a. ist der ganze Himmel blau.
Insofern steckt da nicht so viel Information drin und entsprechend spielt das bei unserer Wahrnehmung nicht so eine starke Rolle. Kluge Natur, wa?
-
Statt Gleitkommaoperationen kannste die Grauwertberechnung auch wie folgt machen:
Gray = ((77 * Red) + (151 * Green) + (28 * Blue)) >> 8