Rotverschiebung im RGB Farbraum

  • <blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">Zitat:<hr height="1" noshade id="quote"><i>Original erstellt von: mkoch</i>
    <br />Hallo,


    hat jemand eine Idee wie man bei einem RGB24 Bild eine relativistische Rotverschiebung (um einen beliebigen Betrag) simulieren könnte?


    Gruß
    Michael
    <hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">


    Streng genommen musst Du die Filterempfindlichkeitsfunktion in Abhängigkeit von der Wellenlänge Deiner Aufnahmefilter kennen (z.B. die Deiner Bayermatrix Pixel in RGB).


    Dann brauchst Du das Spektrum Deiner Objektquellen als Funktion der Wellenlänge.


    Dann verschiebst Du das ObjektSpektrum zum Roten hin (jedoch s.u.) Dann legst Du die Filterkurve drüberund summierst den Wert für einen Filter auf. Das wird dann Dein neuer Heligkeits Wert in diesem Filter. Usw für alle Filter.


    Verschiedene Objekte haben verschiedene Spektren und reagieren verschieden auf die Redshift.


    Außerdem musst Du noch Bedenken, dass Redshift multiplikativ ist in der Wellenlänge auch schon nichtrelativistisch: Delta Lambda = Lambda * v/c. Damit alle Spektrumpixel um den gleichen Wert schieben, musst Du das Spektrum über Log(lambda) auftragen...Darin wäre dann für alle (log) lambdas die Verschiebung GLEICH, nämlich log(delta lambda) = Log (v/c). Wenn Du das nicht machst, verschiebt sich rotes Licht weiter als blaues Licht... Siehe die Formel für Delta Lambda oben...


    Macht man alles nur wenn man es wirklich braucht - und wenn man genug Softwarewissen (oder die Tools dafür) hat - würde ich sagen... :)


    Gruss Peter

  • Hallo Peter,


    oh, eine Antwort auf die Frage die ich vor 3 Monaten gestellt habe!
    Ich hatte inzwischen schon einige Versuche unternommen, ein RGB Bild ins rote zu verschieben. Aber das Problem ist nach wie vor ungelöst.


    <blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">Zitat:<hr height="1" noshade id="quote"><i>Original erstellt von: PeterSurma</i>
    Streng genommen musst Du die Filterempfindlichkeitsfunktion in Abhängigkeit von der Wellenlänge Deiner Aufnahmefilter kennen (z.B. die Deiner Bayermatrix Pixel in RGB).
    Dann brauchst Du das Spektrum Deiner Objektquellen als Funktion der Wellenlänge.
    <hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">


    Nehmen wir mal den einfachsten Fall an: Die Filterfunktionen sind rechteckig, und das Spektrum der Lichtquellen ist gleichmässig verteilt.
    R,G,B sind die Komponenten des gegebenen Bildes, und daraus möchte man nun die Komponenten Rr,Gr,Br des rotverschobenen Bildes berechnen:
    Rr = R * (1 - a) + G * b
    Gr = G * (1 - b) + B * c
    Br = B * (1 - c)
    Dabei ist a der Anteil der am langwelligen Ende ins infrarot verschoben wird, b ist der Anteil der von grün nach rot verschoben wird, und c ist der Anteil der von blau nach grün verschoben wird.


    Ich habe das ausprobiert (mit FFmpeg) aber das Ergebnis sieht nicht gut aus. Mal angenommen, die ursprüngliche Farbe ist grün, also R=0, G=1, B=0. Egal wie ich die Werte a,b,c wähle, die resultierende Farbe kann niemals gelb werden. Denn gelb wäre R=1, G=1, B=0.


    Das einzige was funktioniert ist der triviale Fall für eine sehr große Verschiebung:
    Rr = G
    Gr = B
    Br = 0


    Das Ergebnis muss nicht wissenschaftlich exakt sein. Es soll nur gut aussehen. Also bei einer bestimmten Rotverschiebung sollte aus grün gelb werden.


    Es gibt in FFmpeg natürlich auch die Möglichkeit, den ganzen Farbkreis zu rotieren (Hue Funktion). Das hat zwar den Vorteil dass aus grün gelb werden kann, aber es hat den Nachteil dass das rote Licht am langwelligen Ende des Spektrums nicht verloren geht, sondern ins blaue rotiert wird. Das ergibt physikalisch keinen Sinn.


    Gruß
    Michael

  • Die Rotverschiebung sagt ja nicht viel über das, was man tatsächlich beobachtet, es ist "nur" die Verschiebung einzelner Spektralllinien im Spektrum. Das Spektrum selber ist selbst für anständig weit entferne Galaxien noch sehr ähnlich zur Sonne.


    Wenn es aber nur um den künstlerischen Effekt geht, kann man das umrechnen.



    http://www.olos.de/~ukern/publ/tex/pdf/dtk200504.pdf


    Entweder du schreibst ein kleines Programm oder du hast MathCad oder Mathematica zur Hand, dort kannst Du Rechenoperationen direkt am RGB Bild machen und sogar als Funktion definieren.


    Also zuerst jeder Punkt nach Wellenlänge, dann um gewünschten Betrag verschieben und dann wieder zurück zu RGB.


    Gruss Konrad

  • Hallo Konrad,


    <blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">Zitat:<hr height="1" noshade id="quote"><i>Original erstellt von: fastride</i>
    Entweder du schreibst ein kleines Programm oder du hast MathCad oder Mathematica zur Hand, dort kannst Du Rechenoperationen direkt am RGB Bild machen und sogar als Funktion definieren.
    <hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">


    Ich kann das in FFmpeg berechnen. Mir fehlen nur die passenden Formeln.


    <blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">Zitat:<hr height="1" noshade id="quote"><i>Original erstellt von: fastride</i>
    Also zuerst jeder Punkt nach Wellenlänge, dann um gewünschten Betrag verschieben und dann wieder zurück zu RGB.
    <hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">


    So einfach geht das nicht. Was machst du, wenn der Punkt weiss ist?


    Gruß
    Michael

  • Es gibt nicht für jede RGB Farbe eine tatsächliche Entsprechung im Spektrum, das Spektrum ist eine gekrümmte Linie im Farbraum, und nur diese Werte haben eine direkte Entsprechung.


    https://de.wikipedia.org/wiki/RGB-Farbraum


    Die Mischung der 3 RGB Wellenlängen macht unser Gehirn, nicht die Mathematik.


    Ich hab viele Mikroskop Bilder mit "ImageJ" gerechnet.
    Es ist eine Freeware die aber ENORM leistugsfähig ist.


    Da kannst du ein RGB Bild in die drei Kanäle splitten, das ist erstaml alles, was unsere Augen sehen, den Rest macht das Gehirn.


    Dann schau die die Empfindlichkeitskurve der Augen für die 3 RGB Farben an. Das Auge sieht ja nur diese.
    Eine Verschiebung macht sich nur über die wahrnehmbare Helligkeit der einzelnen Farben bemerkbar, die siehst du aber im Binärbild nicht!


    Also machst du vom RGB noch ein 256 Stufen Grauspektrum.


    Jetzt schaust du dir für jede RGB Farbe, wie intensiv sie im realen Sonnenspektrum liegt und berechnest die gewünschte Verstärkung für Rot und die entsprechende Abschwächung für Grün und Blau.


    Aber weil das zu aufwändig ist würd ich für rein künstlerische Zwecke folgendes machen:


    Rotkanal bleibt identisch


    Dann machtst du das RGB Bild 20% (mehr oder weniger) dunkler und zerlegst es nochmal in die 3 Kanäle. Davon nimmst du den Grün-anteil


    Dann machst du das RGB nochmal 20% dunkler und wieder in 3 Kanäle teilen, und jetzt nur den Blau anteil behalten.


    Jetzt addierst du 100%R 80%G und 60%B wieder zu einem RGB und hast sowas, wie eine Rotverchiebung.


    Mit "ImageJ" kannst du sogar ein Makro schreiben, welches das erledigt.


    Gruss Konrad


    ImageJ --&gt; https://imagej.nih.gov/ij/download.html

  • <blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">Zitat:<hr height="1" noshade id="quote"><i>Original erstellt von: fastride</i>
    Aber weil das zu aufwändig ist würd ich für rein künstlerische Zwecke folgendes machen:


    Rotkanal bleibt identisch


    Dann machtst du das RGB Bild 20% (mehr oder weniger) dunkler und zerlegst es nochmal in die 3 Kanäle. Davon nimmst du den Grün-anteil


    Dann machst du das RGB nochmal 20% dunkler und wieder in 3 Kanäle teilen, und jetzt nur den Blau anteil behalten.


    Jetzt addierst du 100%R 80%G und 60%B wieder zu einem RGB und hast sowas, wie eine Rotverchiebung.
    <hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">


    Mit anderen Worten:
    Rr = R
    Gr = G * 0.8
    Br = B * 0.6


    Da hast du aber keine Verschiebung durchgeführt. Wenn ein Punkt vorher grün war, dann ist er hinterher immer noch grün, nur etwas dunkler.


    Gruß
    Michael

  • Hallo Konrad,


    <blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">Zitat:<hr height="1" noshade id="quote"><i>Original erstellt von: fastride</i>
    Jetzt schaust du dir für jede RGB Farbe, wie intensiv sie im realen Sonnenspektrum liegt und berechnest die gewünschte Verstärkung für Rot und die entsprechende Abschwächung für Grün und Blau.
    <hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">


    Diesen Satz habe ich nicht verstanden. Kannst du das in Form eines Algorithmus ausdrücken?


    Gruß
    Michael

  • <blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">Zitat:<hr height="1" noshade id="quote"><i>Original erstellt von: mkoch</i>
    <br />[quote][i]


    Da hast du aber keine Verschiebung durchgeführt. Wenn ein Punkt vorher grün war, dann ist er hinterher immer noch grün, nur etwas dunkler.


    Gruß
    Michael
    <hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">


    Ja, das ist wahr, aber das Auge macht genau das.


    Im RGB hast Du ja nur die Information für NUR drei Punkte auf dem Spektrum!


    (WIKI)
    rot: 700 nm (praktisch sind für das menschliche Auge alle Wellenlängen oberhalb von 650 nm farbgleich, daher sind praktisch alle Spektrallinien oberhalb von 650 nm nutzbar, beispielsweise die tiefrote 690,7-nm-Hg-Linie)
    grün: 546,1 nm (grüne Hg-Linie)
    blau: 435,8 nm (blaue Hg-Linie)


    Das Bild enthält keine Informationen, was 50 nm links oder rechts liegt, es wird alles auf RGB reduziert.
    Daher hast du keine andere Möglichkeit, als nur über die Helligkeit zu gehen.



    ***Diesen Satz habe ich nicht verstanden. Kannst du das in Form eines Algorithmus ausdrücken?***



    Man müsste die Funktion für das folgende Bild haben:




    Intensität = f(Wellenlänge)


    für die Wellenlängen von R G B gibt es einen Intensitätswert im Spektrum.
    Wenn Du jetzt davon ausgehst, dass sich das ganze Spektrum um sagen wir 50nm verschiebt, dann hast die Werte R(-50nm) G(-50nm) B(-50nm)


    G und B kommen liegen links vom Maximum, werden also kleiner
    R liegt rechts davon, wird also grösser.


    Ich würd es einfach mal probieren, wie es aussieht.
    Du kannst nur über die drei Farbkanäle steuern, mehr Info ist ja nicht da

  • Ich hab mal das Verfahren ausprobiert.


    Ein RGB Bild habe ich in die drei RGB Kanäle gesplittet.


    Dann die Helligkeit über alle Graustufen gleichmässig verringert.


    Zum Schluss die drei Kanäle wieder gemerged.


    Original RGB
    zweites Bild R(100%)G(80%)B(60%)
    drittes Bild R(100)%G(60%)B(30%)


    Die Prozentzahlen sind jetzt frei erfunden und nicht aus dem Spektrum berechnet, aber das Prinzip funktioniert.





    Gruss Konrad

  • <blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">Zitat:<hr height="1" noshade id="quote"><i>Original erstellt von: fastride</i>
    <br />RGB kann die Summe aus Rot und Grün nicht von Gelb unterscheiden. In der Realität hätten alle 3 eine unterschiedliche Wellenlänge!


    Daher wird sowas immer eine Näherung bleiben.
    <hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">


    Fakt ist aber, dass man mit Hue-Rotation den Farbkreis um beliebige Winkel verdrehen kann. Es ist problemlos möglich, z.B. grün nach gelb zu verschieben. Wenn da nur nicht das blöde Problem wäre, dass bei der Rotation das rote Licht (das eigentlich verschwinden soll) am blauen Ende des Spektrums wieder auftaucht.


    Gruß
    Michael

  • Ciao Michael,


    ich habe jetzt nicht alles gelesen, was ihr oben geschrieben habt, sorry - aber nochmal ein paar Gedanken meinerseits:


    Dein Hue-Problem liegt daran, dass Hue keine Physik ist (!) sondern eine pure Konvention wie Farben in eine menschliche Systematik gebracht werden (Hue). Photoshop ist (toll, aber) kein physikalisches Tool !


    Du kannst es - wenn Du es wissenschaftlich machen willst (die Frage ist, willst Du das ?) - nicht mit einfacher Hue-Drehung machen. Man muss verstehen was ein Filter, z.B. R-Filter aus einem (evtl. komplexen) Objekt-Spektrum macht, nämlich einfach eine einzelne Pixel-Zählrate (z.B. eines Sterns). Jeder Filter R,G,B macht das, d.h. Du hast nach der Filterung des Objekts 3 Pixelwerte (des Sterns) in R, G und B.


    Wenn (sagen wir mal) der Stern jetzt reshifted ist, dann ändern sich diese Zählraten, je nach Redshift und je nach Spektrum. Du musst 'einfach' nur die neuen Zählraten nehmen, darus ein RGB Tripel machen und daraus bekommst Du dann ein Farbbild. Fertig.


    Zum Beispiel misst die Astrophysik bei grossen Galaxiensurveys oft nur die RGB-Filterwerte von Galaxien und bestimmt daraus die Redshift. Aus der morphologischen Klassifikation (Spirale, Ellipse,...) weiss man das Spektrum, dass so eine Galaxie bei Redshift=0 (hier) hat, man kann also die Filter-Helligkeiten vorhersagen (wie ganz oben beschrieben). Zumindest kann man das versuchen. Vor allem ist das wesentlich weniger zeitaufwendig als (viele, viele) Spektren zu machen.


    Ausserdem solltest Du bendenken, dass Objekte mit Redshift in der Praxis immer Galaxien sind. Die haben komplexe Spektren (keine einfachen Schwarzkörper), die Du Dir erst besorgen + ansehen musst. Und deren Redshift kannst Du richtig nur simulieren, wenn Du so vorgehst wie ganz oben. Z.B. hat eine Spirale die einen grossen Bulge hat, aber auch eine sternbildendend-aktive Scheibe viele rote Sterne (Bulge, K-Riesen) im Spektrum, aber eben auch überlagert viele Blaue (u.a. OB Sterne) Sternentstehung)...


    Gruss, Peter

  • Hallo Peter,


    <blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">Zitat:<hr height="1" noshade id="quote"><i>Original erstellt von: PeterSurma</i>
    Dein Hue-Problem liegt daran, dass Hue keine Physik ist (!) sondern eine pure Konvention wie Farben in eine menschliche Systematik gebracht werden (Hue). <hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">


    Ja, das ist mir klar.


    <blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">Zitat:<hr height="1" noshade id="quote"><i>Original erstellt von: PeterSurma</i>
    Du kannst es - wenn Du es wissenschaftlich machen willst (die Frage ist, willst Du das ?) - nicht mit einfacher Hue-Drehung machen.
    <hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">


    Sagen wir mal es soll halbwegs wissenschaftlich sein. Ich bin bereit gewisse Vereinfachungen zuzulassen. Zum Beispiel wäre ich bereit, die Wellenlängen-Abhängigkeit der Rotverschiebung zu vernachlässigen.
    Aber die Variante die Konrad weiter oben vorgeschlagen hat (einfach die grün- und blau Kanäle abschwächen) das ist mir eine zu starke Vereinfachung.


    Ich formuliere das Problem nochmal mit anderen Worten:


    Gegeben ist ein RGB Bild mit beliebigem Inhalt. Das kann ein astronomisches Objekt sein, aber es könnte auch was anderes sein.
    Gesucht ist ein Algorithmus, der dieses Bild in Richtung rot verschiebt. Die Weite der Verschiebung soll einstellbar sein von 0 bis mindestens 120°, bezogen auf den Farbkreis. 120° wäre der Fall, wenn aus grün rot wird.
    Insbesondere soll der Algorithmus folgende Fälle korrekt abbilden:
    0,0,0 --&gt; 0,0,0 (schwarz bleibt schwarz)
    Bei 60° Verschiebung:
    1,0,1 --&gt; 0,0,1 (violett wird blau)
    0,0,1 --&gt; 0,1,1 (blau wird cyan)
    0,1,1 --&gt; 0,1,0 (cyan wird grün)
    0,1,0 --&gt; 1,1,0 (grün wird gelb)
    1,1,0 --&gt; 1,0,0 (gelb wird rot)
    1,0,0 --&gt; 0,0,0 (rot wird schwarz)
    1,1,1 --&gt; 1,1,0 (weiss wird gelb ?)
    Bei 120° Verschiebung:
    1,0,1 --&gt; 0,1,1 (violett wird cyan)
    0,0,1 --&gt; 0,1,0 (blau wird grün)
    0,1,1 --&gt; 1,1,0 (cyan wird gelb)
    0,1,0 --&gt; 1,0,0 (grün wird rot)
    1,1,0 --&gt; 0,0,0 (gelb wird schwarz)
    1,0,0 --&gt; 0,0,0 (rot wird schwarz)
    1,1,1 --&gt; 1,1,0 (weiss wird gelb ?)

    Gruß
    Michael


    P.S. Es würde auch genügen, wenn der Algorithmus nur von 0 bis 60° funktioniert. Für größere Verschiebungen könnte man ihn ja mehrfach anwenden.

  • Ok verstehe, dann reden wir von etwas, was grob das Phänomen abbildet, weiter aber nichts. Das muss man dann eben per Software dann auch so phänomenologisch auf den Hue-Werten machen/ausprogrammieren.


    Ohne die Spektren der Objekte zu kennen und ohne das quantitativ zu handhaben (Filterwirkung auf redshiftete Spektren ausrechnen), kann das aber nie (physikalisch) korrekt sein. Und mit Relativität (Deine Eingangsfrage) oder den astrophysikalischen Effekten von Dopplerverschiebung hat das ja dann auch nichts (Reales) zu tun... Hm, hm... Du siehst mich etwas zweifeln, sorry.


    Ich würde dann sagen: frag Dich halt, wieviel Mühe Du Dir damit machen willst... (und auch: was Du/man dabei lernst/lernt...?).


    Good luck anyway ! [:)]


    Gruss, Peter

  • Ich mach Dir mal noch (die Skizze eines) nen Gegenvorschlag: [:)]


    (A) Nimm MS Excel und schreib dir in Spalte A die optischen Wellenlängen, sagen wir in Aengstrom Schritten.
    (B) Jetzt nimmst Du einen Stern, sagen wir die Sonne, 5200 K Effektivtemperatur und rechnest als Funktion der Wellenlänge in Spalte B den PhotonenFluss aus, der von dem Ding kommt (Schwarzkörperspektrum zur Enfachheit). Am besten Du normierst die Werte irgend wie (Gesamtfluss-Summe, oder Maximalwert auf 1,...)
    (C) In Spalte C trägst Du den Durchlass eines Filters, sagen wir R ein - Eine Zahl immer unter 1.00 (Irgendwie normiert, wie oben)
    (D) In Spalte D Multiplizierst Du Schwarzkörperfluss B und Filterwert C, d.h. Du rechnest aus, wieviel Fluss durch Deinen Filter von dem Stern kommt. Wenn Du die Spalte aufsummierst bekommst Du eine Summenzahl. Das ist Deine Anzahl der Photonen von dem Schwarzkörper in dem Filter. Wenn Du willst kannst Du daraus mag machen: Mag = -2.5 log(Summe)


    JETZT:
    Verschiebst Du das Spektrum B um eine Redshift, die Du Dir aussuchst. Wenn Du unter v &lt; 10% *c bleibst, ist das einfach Delta Lambda = v/c.


    DANN:
    Machst Du das gleiche oben und rechnest Fluss + Mag aus.


    UND JETZT:
    Siehst Du wie Deine Redshift den Helligkeitswert verändert.


    UND DANN:
    Wenn Du das in 3 Filterbändern machst, kannst Du sagen, wie ein Stern bei uns im Vergleich zu bei Redshift X aussieht - z.B. in seiner 'RGB Farbe'.


    Zwar ein haufen Arbeit, aber sooo schlimm auch wieder nicht und hier wäre dann schon recht viel richtige Physik drin ! :)
    (Man kann sicher noch einiges daran feilen im 'Detail - insbesondere was die Normierung der Spektrum/Filter Werte angeht... lass wir mal jetzt...)


    Gruss, Peter


    PS:
    Streng genommen könnte man Spalte A nicht in Lambda-Steps sondern in Log(lambda) Steps machen, dann stimmt die Simulation sogar richtig gut + man kann wenig daran meckern ! s.o. Lediglich die Anschaulichkeit leidet etwas...

  • Hallo Michael,


    ich hab mir mal ein paar Formeln überlegt und gleich ausprobiert:



    Der Wert von 1 entspricht auf dem Farbkreis 120°.
    Die grüne Farbe finde ich etwas zu schwach, aber soll das Ergebnis so in etwa aussehen?


    Viele Grüße
    Ronny

  • (==&gt;)Ronny


    Sieht doch nicht schlecht aus! Das Grün ist schwach, weil im RGB nichts aus dem UV Bereich ins sichtbare Spektrum nachgeschoben wird.
    Ich hab mal ein Spektrum etwas "Zerlegt". Man sieht, dass RGB im Violetten wieder Rot dazu mischt, was nicht ganz optimal ist, da dieser Anteil sich bei der Verschiebung Richtung Rot die Farben etwas verfälscht.


    Könntest Du mal ein Spektrumbild in RGB mit Wellenlängenskala in gleichen Abständen, wie im oberen Bild darstellen?
    Ich wär auch am Excel File interessiert.


    Gruss Konrad

  • Hallo Ronny,


    <blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">Zitat:<hr height="1" noshade id="quote"><i>Original erstellt von: nemausa</i>
    ich hab mir mal ein paar Formeln überlegt und gleich ausprobiert:
    <hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">


    Wie sehen denn deine Formeln aus?


    Gruß
    Michael


    P.S. Wie Konrad schon vorgeschlagen hat, wäre es schön wenn du deinen Algorithmus mal auf ein geeignetes Testbild anwenden könntest, z.B. https://de.wikipedia.org/wiki/…/media/Datei:HSV_cone.png


    P.P.S. oder noch besser dieses hier: http://3dlutcreator.ru/materials/HueSatLuma_Circle_24.png

  • Hallo,


    bei den extremen Farben im Spektrum sieht das Ergebnis nicht so optimal aus. [8)]



    Den Rotkanal habe ich so berechnet:


    R(v) = (R/(1+v²)+G/(1+(1-v)²)+B/(1+(2-v)²))/1,7


    Allerdings wurde so die Farbsättigung geringer, deshalb musste ich die Farben noch verstärken.
    Hier ist der Labview-Quellcode dazu:



    Viele Grüße
    Ronny

  • <blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">Zitat:<hr height="1" noshade id="quote"><i>Original erstellt von: nemausa</i>
    bei den extremen Farben im Spektrum sieht das Ergebnis nicht so optimal aus. [8)]
    <hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote">


    ja, bei schwacher Verschiebung in Richtung rot ist zu wenig gelb und grün im Ergebnis.


    Gruß
    Michael

  • Ich habe jetzt eine brauchbare Lösung für 60° Verschiebung gefunden. Die folgenden Abbildungen sollen gelten:
    0,0,0 --&gt; 0,0,0 (schwarz bleibt schwarz)
    1,0,1 --&gt; 0,0,1 (violett wird blau)
    0,0,1 --&gt; 0,1,1 (blau wird cyan)
    0,1,1 --&gt; 0,1,0 (cyan wird grün)
    0,1,0 --&gt; 1,1,0 (grün wird gelb)
    1,1,0 --&gt; 1,0,0 (gelb wird rot)
    1,0,0 --&gt; 0,0,0 (rot wird schwarz)
    1,1,1 --&gt; 1,1,0 (weiss wird gelb)
    Das kann man das als *.cube Color-Look-Up-Table darstellen, und zwar nimmt man die kleinste mögliche Tabelle die nur die 8 Eckpunkte des RGB-Würfels enthält.
    Die CLUT kann man dann in FFmpeg problemlos auf beliebige Bilder oder Videos anwenden. Ich habe es im Detail hier in Kapitel 2.82 beschrieben:
    http://www.astro-electronic.de/FFmpeg_Book.pdf


    Gruß
    Michael

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!