Autor |
Beitrag |
Popov
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: Fr 08.02.08 12:43
Seit einiger Zeit, mit gelegentlichen Pausen, versuche ich ein Programm zu schreiben mit dem ich Farben mischen kann. Nur muß ich zu meinem Bedauern sagen, daß ich es irgendwie nicht hinkriege. Wenn ich Gelb und Blau mische, sollte Grün rauskommen. Am Computer bekomme irgendwas raus, nur nicht Grün.
Das Programm soll beim mischen von Farben etwas helfen und ein grobes Verhältnis liefern. Nur anscheinend stimmen die Farben des Computers nicht ganz mit den real gemischten Ergebnissen. Wer kennt sich etwas besser mit Farben aus und kann mir dir Richtung geben? Oder braucht man dafür eine besondere Farbpalette?
_________________ Popov
|
|
Xong
      
Beiträge: 113
WIN 2000
Borland Developer Studio 2006
|
Verfasst: Fr 08.02.08 13:18
Du solltest dich mal mit dem subtraktiven Mischen von Farben beschäftigen.
de.wikipedia.org/wik...raktive_Farbsynthese
Bildschirm nutzen die Additive Farbmischung (z.B. RGB), Drucker die Subtraktive (CMYK).
|
|
LorenzS
      
Beiträge: 128
MS-DOS, WIN 7, WIN 10
BP7.0, D3, D5
|
Verfasst: Fr 08.02.08 14:03
mein versuch
Moderiert von Narses: BMP->JPG
Einloggen, um Attachments anzusehen!
|
|
Popov 
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: Fr 08.02.08 14:42
LorenzS hat folgendes geschrieben: | mein versuch |
Grün ist auch nicht dabei. Aber mische Blau und Gelb, nicht im Computer sondern zwei Ölfarben, dann ergibt das Grün. Eventuell sind die Farbpaletten im Computer anders.
Xong hat folgendes geschrieben: | Du solltest dich mal mit dem subtraktiven Mischen von Farben beschäftigen.
de.wikipedia.org/wik...raktive_Farbsynthese
Bildschirm nutzen die Additive Farbmischung (z.B. RGB), Drucker die Subtraktive (CMYK). |
Den Artikel kenne ich, nur hilft er mir nicht direkt bei meinem Farbproblem. Also um Druckerfarben geht es mir hier nicht. Irgendwie muß ich das wohl umrechnen.
_________________ Popov
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 08.02.08 17:47
Ja, eben genau nach dem beschriebenen Farbmodell. Um klar zu machen wo der Unterschied liegt, könnten die beiden Vergleichsbilder in diesem Artikel helfen:
dok.uni-lueneburg.de...bildschirmfarben.php
Das geht dabei nicht um Druckerfarben oder nicht sondern um verschiedene Farbmodelle.
// EDIT: Dies ist vielleicht auch interessant:
www.easyrgb.com/math.php?MATH=M12#text12
|
|
nagel
      
Beiträge: 708
Win7, Ubuntu 10.10
|
Verfasst: Fr 08.02.08 18:40
Subtraktive Farbmischung (zumindest im CMY-System) ergibt aber auch nicht das gewünschte, denn da wird Gelb und Blau zu Schwarz (Blau = Cyan + Magenta; Blau + Gelb = Cyan + Magenta + Gelb = Schwarz).
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Fr 08.02.08 18:49
Hi,
Oder du bestimmst die Farbmischung Naturwissenschaftlich, teilst die Farbetöne in Klassen(Mathematischer, nicht Informatischer Begriff!!! also z.B. wenn dus über Wellenlänge machst zwischen 200 und 300 Nanometern) ein.
Dann ordnest du jeder Klasse eine Delphi-TColor zu.
Sicher wird es auch anders gehen, aber wenn du es wirklich realistisch haben willst, wäre auch das möglisch!
Edit: Eventuell gibts da fertige Tabellen...
mfG,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Sa 09.02.08 19:47
Das Problem an allen bisherigen Vorschlägen ist doch, dass ihr Farbmodelle benutzt, die nicht auf der Wahrnehmung einer Farbe, sondern deren Darstellung beruhen ...
Beim Mischen einer Farbe ändert man aber deren Wahrnehmung, weil 2 Reize vom Gehirn konkurrierend wahrgenommen werden.
IMHO solltest Du daher einmal versuchen, was passiert, wenn Du von RGB in eines der CIE-Systeme (also Lab oder XYZ) umrechnest, dort dann die Mischung ausführst und dann das Ergebnis wieder zurücktransformierst.
@Farbklassen: Genau das machen die CIE-Systeme. Dort sind X, Y und Z in Abhängigkeit einer bestimmten Erreger-Funktion definiert, mit deren Hilfe man theoretisch die Wellenlänge in eine Farbe umrechnen kann. Damit kann man dann wenn man will, auch Raumsimulationen zur Beleuchtungssituation auf der Erde realitätsnäher gestalten ...
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
delfiphan
      
Beiträge: 2684
Erhaltene Danke: 32
|
Verfasst: Sa 09.02.08 19:58
Gelb ist die Komplementärfarbe von (dunkel)blau. Da hilft weder CIE-Chart noch CMYK weiter. Wenn man zwei Komplementärfarben mischt kommt grau raus, das ist mehr oder weniger die Definition von "Komplementärfarbe". Du musst cyan mit gelb mischen, um grün zu erhalten.
Die CIE Charts sind auch nicht "isometrisch", die Abweichung in einer Koordinate (x,y,z) bewirkt nicht überall die gleich grosse Farbänderung. Grün ist z.B. übervertreten. Um Farben genauer zu mischen gibt es nicht-lineare Mischtheorien, siehe z.B. Kubelka-Munk.
Was man nicht vergessen sollte: Es gibt unendlich viele Frequenzen im sichtbaren Bereich, wir haben aber nur 3 verschiedene Rezeptoren. Das entspricht einer Projektion eines unendlich-dimensionalen Raumes auf drei Dimensionen. Aber nur weil wir 3 Rezeptoren haben, heisst es noch lange nicht, dass man mit 3 Grundfarben alle wahrnehmbaren Farben darstellen kann! Schaut man sich das CIE-Chart an, sieht man eine gebogene, hufeisenförmige Linie. Pickt man davon 3 Farben raus, kann man damit alle Farben im Dreieck zwischen diesen 3 Punkten mischen.
Man sieht nun aber: Egal welche 3 Farben man als Grundfarben auswählt, man kann damit nie alle wahrnehmbaren Farben darstellen, da das Dreieck nie den gesamten hufeisenförmigen Bereich abdecken kann. Vor allem die "reinen", spektralen Farben mit hoher Sättigung am Rand kann man nicht darstellen. Vielleicht ist euch auch schon diese tiefblaue Farbe bei Beleuchtungen aufgefallen. Die sieht man meistens nie scharf da die Linse des Auges nicht alle Wellenlängen gleichzeitig auf die Netzhaut fokussieren kann, aber das ist ein anderes Thema. Aus diesem Grund kann man auf Bildschirmen mit 3 Grundfarben solche Farben nicht darstellen.
Der Hintergrund dieser komischen, gebogenen Linie (und die Tatsache, dass man mit 3 Grundfarben nicht alle Farben darstellen kann) liegt an unserer etwas schrägen Wahrnehmung. Im CIE-Experiment mussten die Probanden jede Spektralfarbe so gut wie möglich durch Mischen von 3 Grundfarben erzeugen. Für jede Spektralfarbe ermittelte man also die Mischanteile für (r/g/b) (siehe Matching-Functions unten). Es ist nun so, dass die Matching-Function von rot bei Spektralfarben unterhalb ca. 545 nm negative Werte annimmt. Deswegen ragt das CIE-Chart auf der gegenüberliegenden Seite von rot über das Dreieck hinaus.
Man hätte also quasi negatives rot gebraucht, um an gewisse Spektralfarben durch Mischen von rot, grün und blau ranzukommen (Natürlich gibt's kein negatives rot. Beim Experiment musste man bei der spektralen Referenzfarbe etwas rot hinzumischen). Als die Leute dann merkten, dass sie negative Werte brauchen würden, um gewisse Farbwerte angeben zu können, ist man dann noch auf die Idee gekommen ein XYZ-System zu definieren, welches dieses Hufeisen im RGB-System so verzerrt, dass keine negativen Werte mehr nötig sind. Und zwar vor allem deswegen, weil man früher noch viel von Hand gerechnet hat. Ohne diese Sache mit dem negativen rot hätte man erstens kein hufeisenförmiges Ding gehabt, und zweitens hätte man sich die XYZ-Transformation sparen können und hätte ein schön gleichseitiges, rechtwinkliges Dreieck entlang den Koordinatenachsen gehabt. Naja, eigentlich hät's dann auch kein Diagramm gebraucht
Was natürlich auch erwähnt werden sollte, ist, dass Farbe nicht gleich Farbe ist. Es gibt unendlich viele verschiedene mögliche Absorptionslinien, die die gleiche Farbe erzeugen (Metamerie). Zwei Farben, die unter weissem Licht gleich aussehen, können unter anderem Licht unterschiedlich aussehen. Und zwar so unterschiedlich, dass die eine Farbe unter gewissem Licht dunkel wird und die andere hell bleibt.
So viel zur Farbtheorie 
|
|
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: So 10.02.08 01:02
[OT]Dann will ich nicht den Code von IScribble sehen[/OT]
Wirklich faszinierende Ausführungen, ich dachte immer dass das sichtbare Licht einen bestimmten Wellenlängenbereich abdeckt, aber bedingt durch nur drei vorhandene Rezeptoren und dem was du geschildert hast, scheint dem nicht so zu sein.
Wir können also nur Rot, Grün und Blau "wahrnehmen", kann ein Computer also doch alle für uns sichtbaren Farben darstellen ? Wenn nein, was wären "sinnvolle" Möglichkeiten das volle Potential auszuschöfpen ?
mfg
|
|
delfiphan
      
Beiträge: 2684
Erhaltene Danke: 32
|
Verfasst: So 10.02.08 09:34
F34r0fTh3D4rk hat folgendes geschrieben: | ich dachte immer dass das sichtbare Licht einen bestimmten Wellenlängenbereich abdeckt |
Ist doch auch so. Das sichtbare Licht ist so zwischen 300nm und 800nm Wellenlänge. Die Wellenlängen in nm sind im CIE-Chart am Rand der gebogenen Linie eingetragen. Alle Farben dazwischen sind Mischfarben.
F34r0fTh3D4rk hat folgendes geschrieben: | Wir können also nur Rot, Grün und Blau "wahrnehmen", |
Nein, wir können auch orange und violett wahrnehmen  Ja, das Auge hat aber nur 3 verschiedene Rezeptoren.
Wikipedia hat folgendes geschrieben: | Man unterscheidet beim Menschen 3 Typen, den S-Typ (Blaurezeptor), M-Typ (Grünrezeptor) und L-Typ (Rotrezeptor). Ihre Reizantwort beschreibt die Spektrale Absorptionskurve, die die Grundlage der Farbmetrik bildet.
Andere Vertebraten (Wirbeltiere) haben teils nur zwei, meist aber vier Zapfen-Typen. |
F34r0fTh3D4rk hat folgendes geschrieben: | kann ein Computer also doch alle für uns sichtbaren Farben darstellen ? Wenn nein, was wären "sinnvolle" Möglichkeiten das volle Potential auszuschöfpen ? |
Eben gerade nicht (siehe Geschichte mit dem tiefblau). Der Bildschirm kann nur einen kleinen Bereich abdecken (siehe Bereich innerhalb des Dreiecks). Der Bereich deckt keine einzige reine Spektralfarbe ab. Die wirklich reinen und leuchtenden Farben am Rand sind also alle nicht dabei. Ein kräftiger Regenbogen dürfte demnach echt immer schöner aussehen als auf einem Bildschirm oder Foto
Alle Farben wirst du auf keinem Bildschirm je darstellen können, welcher mit 3 Grundfarben arbeitet. Denn du kriegst immer ein Dreieck als Bereich, du müsstest aber diese Hufeisenform abdecken. Du bräuchtest also viel mehr Grundfarben, oder aber negative Farbe  Das liegt wie gesagt daran, dass das Gehirn rot unterhalb 545nm "negativ gewichtet", deswegen geht die Kurve dort nicht entlang der linken Kante des Dreiecks im CIE-Chart...
Ausserdem haben manche Tiere ein höheres Farbvermögen mit 4 Rezeptoren. D.h. für manche Tiere sehen die Farben auf Bildschirmen und Fotos wohl völlig verkehrt aus. Genau so komisch wie ein Bild für uns aussieht, wenn die rote Tinte beim Drucker ausgegangen ist. Ist halt nur für uns Menschen optimiert.
|
|
colaka
      
Beiträge: 200
Erhaltene Danke: 4
Win XP, W7
Delphi 2005 Prof.
|
Verfasst: So 09.03.08 18:02
Titel: Farbmixer
In dem Buch "Programmieren lernen in Borland Delphi 7" von Doberenz/Kowalski ist genau Dein Problem ausführlich als Praktikübung unter dem Titel "Einen Farbmixer bauen" beschrieben.
In diesem Programm werden 3 Quadrate (für jede der drei Grundfarben eines) so angeordnet, daß man nicht nur die Mischfarbe aus allen dreien, sondern auch die Mischungen aus 2 benachbarten Grundfarben sieht. Die Intensität der Grundfarben kann über 3 Schieberegler eingestellt werden.
Gruß Ebi
|
|
delfiphan
      
Beiträge: 2684
Erhaltene Danke: 32
|
Verfasst: Mi 19.03.08 22:41
colaka: Was du gelesen hast ist die Standard RGB Mischung. Deckende Realfarben verhalten sich nicht-linear wegen verschiedenen physikalischen Phänomenen. Da werden Streuung, Absorption, Schichtdicke und Untergrundfarbe mitberücksichtigt.
|
|
|