Wie programmiert man Farbaenderungen wie Saettigung, Farbton und Helligkeit?
-
cmy ist recht verbreitet.
-
Am einfachsten direkt mit dem HSV-Farbraum - es gibt direkte Formeln für RGB <-> HSV.
-
fail sry, vergiss das was ich im oberen post geschrieben habe.
-
Besten Dank, nachdem ich RGB zu LAB und LAB zu RGB implementiert habe( aber nur sRGB und D50 als Referenzweiß) bin ich jetzt auch dabei HSV in die IDE zu hacken.
-
Th69 schrieb:
Am einfachsten direkt mit dem HSV-Farbraum - es gibt direkte Formeln für RGB <-> HSV.
Es geht auch ueber den YCbCr bzw. YIQ Farbraum. Der Weg ueber den HSV Farbraum ist laut folgender Stackoverflow-Antwort nicht zu empfehen: Link
HSV and HLS color systems are problematic for a number of reasons. I talked with a color scientist about this recently, and his recommendation was to convert to YIQ or YCbCr space and adjust the the chroma channels (I&Q, or Cb&Cr) accordingly. (You can learn how to do that here and here.)
Ich habe das erst kuerzlich so implementiert und es funktioniert auch super. Weitere Links neben dem Stackoverflow-Eintrag, die mir geholfen haben:
http://www.equasys.de/colorconversion.html
http://msdn.microsoft.com/en-us/library/windows/hardware/ff569191(v=vs.85).aspx
-
Danke, werde ich mir mal durchlesen.
-
Je nach Transformation ist es geschickter, mit (kumulativen) Histogrammen zu arbeiten, etwa wenn du die Verteilung von Helligkeitsintensitäten automatisiert optimieren willst (kennt man in Bildverarbeitungsprogrammen als Autokorrektur)
-
Primäres Ziel war jetzt nicht die Tonwertkorrekturen. Ein Histogramm und auch das kumulative Histogramm(wo ein neuer Wert zu der Summe der vorigen Werten addiert wird und daher stetig steigt) für die automatische Tonwertkorrektur, habe ich eh noch auf der ToDo-Liste und noch nicht implementiert.
Es ging mir halt darum, ein Bild mit Regler und per internen Befehl in der Helligkeit, Sättigung und Farbton ändern zu können. Da sollte jetzt kein Automatismus rein.
Aber ich bin natürlich für jeden Tipp dankbar. Es handelt sich aber nur um ein Lernprojekt. Ich habe von den ganzen Materie wenig Ahnung und habe mir nur ein Semester an Onlinevorlesungen über Bildverarbeitung, in einer Woche im Schnelldurchgang, rein gezogen und versuche nun ein paar meiner Notizen in ein Programm umzusetzen. Alles nur aus Langeweile und weil es natürlich Spaß macht.
Falls jemand noch Links zu Onlinevorlesungen mit weiterreichende Themen hat, dann immer her damit. Die, die ich gefunden habe, waren meist für Nichtstudenten gesperrt.
-
CppNeuland schrieb:
Primäres Ziel war jetzt nicht die Tonwertkorrekturen. Ein Histogramm und auch das kumulative Histogramm(wo ein neuer Wert zu der Summe der vorigen Werten addiert wird und daher stetig steigt) für die automatische Tonwertkorrektur, habe ich eh noch auf der ToDo-Liste und noch nicht implementiert.
Es ging mir halt darum, ein Bild mit Regler und per internen Befehl in der Helligkeit, Sättigung und Farbton ändern zu können. Da sollte jetzt kein Automatismus rein.
Aber ich bin natürlich für jeden Tipp dankbar. Es handelt sich aber nur um ein Lernprojekt. Ich habe von den ganzen Materie wenig Ahnung und habe mir nur ein Semester an Onlinevorlesungen über Bildverarbeitung, in einer Woche im Schnelldurchgang, rein gezogen und versuche nun ein paar meiner Notizen in ein Programm umzusetzen. Alles nur aus Langeweile und weil es natürlich Spaß macht.
Falls jemand noch Links zu Onlinevorlesungen mit weiterreichende Themen hat, dann immer her damit. Die, die ich gefunden habe, waren meist für Nichtstudenten gesperrt.
Ich habe hier zwei Links zu Computer Grafik Vorlesungen. Da ist auch "Image Processing" dabei. Einfach auf "Lectures" klicken:
http://cs.brown.edu/courses/cs123/
http://cs.brown.edu/courses/cs195v/Außerdem ist von folgendem Buch "Computer Vision: Algorithms and Applications" ein Draft als PDF verfügbar. Siehe hier: http://szeliski.org/Book/, zu finden unter "Electronic draft:".
-
Vielen lieben Dank für die Links. Ähm, wo finde ich da die Videos von den Vorlesungen?
EDIT: Das Buch scheint schon mal eine echte Perle zu sein, vor allem für lau.