konvertieren von RGB zu Graustufen in C
Benutzte ich viele Formeln zum umwandeln von RGB in Graustufen, aber nicht die guten Ergebnisse im Vergleich zu GIMP.
Ich bereits getestet, das folgende Formeln:
gray = (int)(0.299 * r + 0.587 * g + 0.144 * b);
gray = (int)(0.299 * r + 0.587 * g + 0.114 * b);
gray = (int)(0.2126 * r + 0.7152 * g + 0.0722 * b);
gray = (int) (0.35*r + 0.50*g + 0.15*b);
gray = ((r * 61) + (g * 174) + (b * 21)) / 256;
gray = (int)((4897 * r + 9617 * g + 1868 * b) >> 14);
gray = r; if(g > gray) gray = g; if(b > gray) gray = b;
- Ich glaube nicht dass das wirklich on-topic hier, da es sich um eine (subjektive) Grafik-Frage als eine Frage der Programmierung. Das heißt, GIMP ist open-source, so Tat Sie betrachten gerade auf der Suche, was es tut?
- Können Sie nicht einfach
libgimp
um es für Sie tun? - Da das Auge eine maximale Empfindlichkeit im grün, es scheint, wie erste oder vierte Formel richtig.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um richtig zu konvertieren RGB zu Graustufen sollten Sie die Transformation der gamma-korrigierten R -, G-und B-Werte in den linearen Farbraum, gelten die Umwandlung in die lineare Raum, und wenden Sie dann eine gamma-Korrektur auf das Ergebnis.
Den sRGB - Farbraum hat einer Transformation, die nur annähernd eine gamma-Kurve. Finden Sie die Wikipedia Artikel für die Angaben. Wikipedia hat auch eine bestimmte Abschnitt auf das Thema sRGB für Graustufen.
Grundsätzlich, zu konvertieren, ein sRGB-Komponente linear-format:
Dann konvertieren zu sRGB zu linearen Graustufen:
Wenden Sie dann das sRGB gamma-Korrektur wieder:
I. e.
Es ist ein GIMP-tutorial beschreibt verschiedene Möglichkeiten, Die GIMP umwandeln können ein farbiges Bild in Graustufen um. Eine Methode ist eine gewichtete Entsättigung, wie Sie schon bereits versucht, und der Artikel gibt einige GEWICHTE, die verwendet werden kann, um annähernd an Die GIMP Umwandlung.
Dem GIMP ist
gegl
Bibliothek, die die Grundlage für alle Bild-Operationen, hat ein ziemlich aufwändiger Mechanismus für die Umwandlung von Farbe in Graustufen, die berücksichtigt, die Farbe der benachbarten Pixel und nutzt einen iterativen Ansatz, der scheint zu emulieren, den Prozess der Entwicklung von Schwarzweiß-Fotografien.Den gimp Hilfe für das Entsättigen-Werkzeug Staaten drei zur Verfügung stehenden Formeln entsprechend der Optionen mit dem Namen "Lighness", "Leuchtkraft" und "Durchschnittlich". Diese wäre:
Leichtigkeit:
0.5 * (max(R,G,B) + min(R,G,B))
Leuchtkraft:
(0.21 * R) + (0.72 * G) + (0.07 * B)
Durchschnitt:
(R + G + B)/3