Ich versuche, Bilder in meiner Mac-App mithilfe von Core Image-Filtern farblich zu korrigieren. Zuerst suche ich nach einem benutzerdefinierten Weißabgleich, um einen Cast von einem Bild zu entfernen. Es sah so aus, als ob die CIWhitePointAdjust
genau das ist, wonach ich suche, aber nachdem ich es ausprobiert habe, bin ich mir nicht sicher, ob ich es falsch benutze oder ob es nicht tut, was ich dachte.Wie können Sie ein Bild mithilfe von Core Image-Filtern farblich ausbalancieren?
Beginnend mit diesem Bild, vergilbt mit dem Alter und mit einem dünnen Streifen aus weißem an ihrem rechten Rand:
I anwenden den Filter, etwa so:
NSColor *whiteSample = // Chosen from the speech bubble's background
CIColor *whiteInputColor = [[CIColor alloc] initWithColor:whiteSample];
layer.filters = @[
[CIFilter filterWithName:@"CIWhitePointAdjust"
withInputParameters:@{kCIInputColorKey: whiteInputColor}]
];
und erhalten Sie dieses Bild zurück:
Beachten Sie, dass es dunkler und gelber als das Original aussieht (das Gegenteil von meinem gewünschten Effekt). Ich hatte einen Effekt eher wie tut ein Auto Color in Photoshop erwartet, etwa so:
ich CIWhitePointAdjust
falsch verwenden, oder ist es das falsche Werkzeug für diesen Job? Wenn ein anderer Filter oder eine Kombination von Filtern besser funktionieren würde, würde ich es gerne wissen.
Da ich Bilder manipuliere, die bereits in CALayer
Objekte sind, scheinen Core Image Filter definitiv die richtige Wahl zu sein, aber wenn dies nur durch ein anderes Mittel möglich ist, bin ich offen dafür.
aktualisieren
A helpful answer auf der Website Signalverarbeitung geben Sie mir den Namen, was zu implementieren Ich versuche. Im Allgemeinen heißt es Histogramm-Entzerrung. Ich versuche herauszufinden, ob es einen Weg gibt, diesen Prozess mit Core Image Filtern durchzuführen und bis jetzt sieht es nicht allzu hoffnungsvoll aus (ohne dass ich selbst schreibe).
Dies könnte nützlich sein: http://StackOverflow.com/a/15972314/341994 – matt
@matt danke, aber ich habe das schon versucht und es schien zu fummelig. Die Farbtemperatureinstellung scheint nichts zu tun, ohne auch den Farbton anzupassen, selbst mit dem Farbton konnte ich das Bild nicht richtig aussehen lassen, und ich möchte dem Benutzer keinen Farbtonregler geben müssen. Es ist darauf ausgerichtet, Farbtemperaturanpassungen für Fotos vorzunehmen, was nicht mein Ziel ist. – Dov
Haben Sie versucht, das Bild mit CIColorControls ein wenig zu desaturieren? – joelg