Seite 1 von 2

Helligkeit einer Farbe, Definition?

Verfasst: 21.01.2008 08:36
von JayCool
Hi,

ich würd' mal gerne die Meinung eines Experten zu diesem Thema wissen:
Wie ermittelt man eigentlich die Helligkeit eines Pixels in einem Bild?

Ich kenne prinzipiell zwei mögliche Methoden, die Helligkeit zu berechnen, siehe Codeschnipsel.

Code: Alles auswählen

farbe = Point(x,y)

rot = Red(farbe)
gruen = Green(farbe)
blau = Blue(farbe)

helligkeit1 = (rot + gruen + blau)/3

helligkeit2 = Sqr(rot * rot + gruen * gruen + blau * blau)
Ich bin mir aber nicht sicher, welche der beiden Formeln den korrekten / korrekteren Wert wiedergibt.
Eigentlich beschreibt ja die Farb-Angabe mittels RGB-Werten einen dreidimensionalen Vektor. Da ist es doch eigentlich nur logisch, wenn die Helligkeit einfach als Länge dieses Vektors gewählt werden kann.

Bei Wikipedia gibt's dann auch noch unter dem Stichwort 'Grauwert' die Angabe

Grauwert = 0,299·Rot + 0,587·Grün + 0,114·Blau

Gruß, Jan

Verfasst: 21.01.2008 08:48
von ZeHa
Nimm einfach dieses Farbmodell hier: http://en.wikipedia.org/wiki/HSL_color_space

Dort hast Du nicht RGB sondern Farbton, Sättigung und Helligkeit. Unter "Conversion from RGB to HSL or HSV" findest Du die passenden Formeln.

Verfasst: 21.01.2008 11:03
von Fluid Byte
Ja, oder du nimmst gleich den Code von Froggerprogger:

http://www.purebasic.fr/german/viewtopi ... hlight=hsl

Verfasst: 21.01.2008 15:24
von Kaeru Gaman
die drei Skalare, die du bei Wiki gefunden hast, sind die offiziell anerkannten.
das basiert darauf, dass Grün eine wesentlich höhere Leuchtkraft hat als Blau.

kannst du selber ausprobieren:
mach nachts deinen Desktop mal grün255, und guck an die Wand gegenüber vom Monitor,
und dann mach ihn mal blau255, und guck noch mal.

Olaf hatte dazu auch mal Code gepostet:
http://www.purebasic.fr/german/viewtopi ... light=luma

Verfasst: 22.01.2008 00:21
von STARGÅTE
dass Grün eine wesentlich höhere Leuchtkraft hat als Blau
Naja....

es ist ehr so, dass unser Auge für den WellenlängenBereich Grün empfindlicher ist als für Blau oder Rot, dadurch habe wir nur den Eindruck das Grün "heller" ist als andere Farben.

Verfasst: 22.01.2008 00:47
von #NULL
Grün empfindlich ist also für Blau oder Rot
ich finde deine typos immmer ungemein unterhaltsam. :lol: ..weiter so

Verfasst: 22.01.2008 00:56
von STARGÅTE
ja lol, das kommt daher das ich immer mehrere Sachen gleichzeitig im Kopf habe ^^ und wenig schlafe ^^, damit streut alles im Kopf rum ^^

Ich meine bei mir ist es inzwischen so weit gekommen, das ich an 2 PC gleichzeitig Programmiere, während der eine PC compiliert und ich daran teste, schreibe ich am andere bereits neuen Code oder verbesser die Bugstellen.

Verfasst: 22.01.2008 01:30
von ZeHa
Bin mir nicht sicher, ob das nur am Auge liegt. In S/W-Filmen sind rote Flächen ja meist auch dunkler als grüne.

Man könnte es probieren, indem man auf seinem Bildschirm drei Flächen anzeigt - reines Rot, reines Grün und reines Blau - und diesen Bildschirm dann mit einer ganz normal analogen Kamera abfotografiert, und zwar auf einen S/W-Film. Ich bin mir ziemlich sicher, daß dann ebenfalls die grüne Fläche die hellste wäre.

Mit dem PC kann man's natürlich nicht nachprüfen, weil wenn man auf dem PC das Bild in S/W (also in dem Fall Graustufen) konvertiert, wird dies ja unter Umständen unter der Berücksichtigung von diesen Eigenschaften gemacht. Daher geht das wohl nur mit 'nem Fotoapparat.

Verfasst: 22.01.2008 02:26
von STARGÅTE
Hier wird schön erklärt wie das Auge die Farben wahrnimmt:
http://de.wikipedia.org/wiki/Farbwahrnehmung

Mit dem PC versuch und Kamera kann man so nicht machen, da ja die Farbe von PC nichtig nur eine Wellenlänge abgibt, sonder ein ganzes Band

Wenn dann müsste man nicht einzelne Spektrallinien heraussuchen und diese dann mit SW abfotografiert.

Verfasst: 22.01.2008 10:25
von ZeHa
Hmm jo da hast Du auch wieder recht, aber sind Farben wie FF0000, 00FF00 und 0000FF nicht nahezu spektral?

Aber andererseits ist ja auch das wieder egal, weil es geht ja exakt um diese Farbtöne. Hier ist grün der hellste und blau der dunkelste. Und ob das nun am menschlichen Auge liegt oder tatsächlich irgendwie von Belang ist, müßte sich damit eigentlich durchaus testen lassen. Weil es ja eben um diese RGB-mäßig "reinen" Töne geht, und nicht um die Spektralfarben.