Stefan: Spektralfarben

Hi,

wie kann ich aus der Wellenlänge einer Farbe die zugehörigen RGB-Werte ausrechnen?

Stefan

  1. Hallo Stefan,

    das finde ich toll: Mal eine ganz andere Frage, die eigentlich nichts mit Webdesign direkt zu tun hat!

    wie kann ich aus der Wellenlänge einer Farbe die zugehörigen RGB-Werte ausrechnen?

    Das halte ich so für sehr schwierig, um nicht zu sagen unmöglich. Denn es ist ja schon für die sogenannten spektral reinen Farben nicht ganz einfach, die zugehörige Wellenlänge festzulegen: Hat reines Rot die Wellenlänge 630nm? Oder eher 624nm?

    Ich würde eine Tabelle mit ein paar (subjektiv) zugeordneten Wertepaaren - also Wellenlänge zu RGB-Komponenten - anlegen, und die Zwischenwerte dann rechnerisch interpolieren. Das ist wahrscheinlich die einfachste und am ehesten praxistaugliche Lösung.

    Aus rein akademischem Interesse würden mich aber andere Lösungsansätze auch interessieren.

    Grüße aus dem Murrtal,

    Martin

    --
    Ist die Katze gesund, freut sich der Hund.
    1. Moin Martin,

      Das halte ich so für sehr schwierig, um nicht zu sagen unmöglich. Denn es ist ja schon für die sogenannten spektral reinen Farben nicht ganz einfach, die zugehörige Wellenlänge festzulegen: Hat reines Rot die Wellenlänge 630nm? Oder eher 624nm?

      Ich würde eine Tabelle mit ein paar (subjektiv) zugeordneten Wertepaaren - also Wellenlänge zu RGB-Komponenten - anlegen, und die Zwischenwerte dann rechnerisch interpolieren. Das ist wahrscheinlich die einfachste und am ehesten praxistaugliche Lösung.

      WOW. Respekt, das ist mir nicht nur am Wochende zu hoch :-)

      regds
      Mike

      1. WOW. Respekt, das ist mir nicht nur am Wochende zu hoch :-)

        Danke, aber mach dir nix draus. Physik war schon immer mein Steckenpferd. Da habe ich in der Schule gut aufgepasst, das meiste verstanden, und sogar manches bis heute behalten.
        Dafür bin ich im Sport eine Niete... ;)

        Schönen Sonntag noch

        Martin

        --
        Du kannst dem Leben nicht mehr Tage geben.
        Aber dem Tag mehr Leben.
  2. Hi,

    gute Frage, aber ich habe leider keine Ahnng, ob es da eine Formel für gibt.
    Außer zunächst mal zu googlen würde ich, wenn ich eine spektralreine Lichtquelle habe, wohl versuchen experimentell übereinstimmungen zu ermitteln (Lichtquelle auf den Ausdruck einer Farbtafel) und mal sehen, ob sich die ermittelten Werte in eine Formel packen lassen.

    freundliche Grüße
    Ingo

    1. Hallo Stefan,

      scheint nicht ganz so einfach:
      http://www.marc-janott.de/marc/uni/bildkommunikation_ss00/cie.html

      jedenfalls hast Du da schon mal eindeutige Anhaltswerte für die Grundfarben und kannst im Zweifel Interpolieren, wie schon beschrieben wurde. Wie man Spektralfarben in RGB darstellt habe ich mal hier beshrieben:
      http://forum.de.selfhtml.org/archiv/2003/11/62886/#m356075

      die letzte Bemerkung dort, daß es sich um den Netscape-Würfel handelt bitte ignorieren. Natürlich handelt es sich nur um einen kleinen Ausschnitt desselben.

      Gruß, Andreas

      --
      <img src="http://was-ist-das.andreas-lindig.de/was_ist_das_fetzen.jpg" border="0" alt="">
      http://was-ist-das.andreas-lindig.de
  3. Hi,

    wie kann ich aus der Wellenlänge einer Farbe die zugehörigen RGB-Werte ausrechnen?

    Das kann m.E. gar nicht eindeutig funktionieren. Denn im RGB-Wert ist ja nicht nur eine Wellenlänge, sondern auch Farbintensität und Helligkeit enthalten.
    Sowohl #010000 als auch #ff0000 ist reines Rot.

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.mud-guard.de/
    1. Das kann m.E. gar nicht eindeutig funktionieren. Denn im RGB-Wert ist ja nicht nur eine Wellenlänge, sondern auch Farbintensität und Helligkeit enthalten.
      Sowohl #010000 als auch #ff0000 ist reines Rot.

      Stimmt, daran hatte ich noch gar nicht gedacht...

      Martin

      --
      Realität ist eine Illusion,
      die durch eine Unterversorgung mit Alkohol entstehen kann.
    2. Hallo,

      Das kann m.E. gar nicht eindeutig funktionieren. Denn im RGB-Wert ist ja nicht nur eine Wellenlänge, sondern auch Farbintensität und Helligkeit enthalten.

      neinein, das stimmt nicht. Du kannst die RGB-Werte sehrwohl auf reine, vollgesättigte Farben eingrenzen. Das sind alle Werte, in denen eine Farbe #ff ist, eine #00 und die dritte einen beliebigen Wert hat.

      Sowohl #010000 als auch #ff0000 ist reines Rot.

      Über die Begriffe "rein" und "gesättigt" will ich jetzt nicht streiten, weil die in den verschiedensten Farbenlehren very durcheinander gebraucht werden. Aber #010000 ist ein Dunkelrot und kommt im natürlichen Spektrum eben nicht vor, sondern nur #ff0000.

      Gruß, Andreas

      --
      <img src="http://was-ist-das.andreas-lindig.de/was_ist_das_fetzen.jpg" border="0" alt="">
      http://was-ist-das.andreas-lindig.de
      1. Hi,

        Über die Begriffe "rein" und "gesättigt" will ich jetzt nicht streiten, weil die in den verschiedensten Farbenlehren very durcheinander gebraucht werden. Aber #010000 ist ein Dunkelrot und kommt im natürlichen Spektrum eben nicht vor, sondern nur #ff0000.

        Hell und Dunkel ist aber nicht eine Frage der Wellenlänge, sondern eine der Strahlungsintensität.

        cu,
        Andreas

        --
        MudGuard? Siehe http://www.mud-guard.de/
  4. Hallo,

    wie kann ich aus der Wellenlänge einer Farbe die zugehörigen RGB-Werte ausrechnen?

    Hier gibt es einen Perl-Code zum Umrechnen ueber die so genannten "Color Matching Functions": http://www.geo.fmi.fi/~tmakinen/kw_rgb.shtml.

    Man findet auch andere Naeherungen, z. B. diesen Ansatz: http://lists.runrev.com/pipermail/use-revolution/2003-August/021029.html. Ich habe das mal in eine PHP-Funktion portiert und damit ueber eine Schleife die RGB-Farben zu den Wellenlaengen 380 bis 780 nm ermittelt und als Farbspektrum ausgegeben: http://www.datenverdrahten.de/test/wavelength2rgb.php.

    MfG, Thomas

    --
    SVG - Learning By Coding
    http://svglbc.datenverdrahten.de/