2016-06-14 33 views
2

Ich arbeite an einem Projekt, bei dem Farbe eine wichtige Komponente ist. Ich muss die Farben von Motiven zwischen Fotos vergleichen, aber die Beleuchtung zwischen Fotos ist nicht absolut konsistent und die Farben sind daher inkonsistent und verzerrt.Passende Farbe/Beleuchtung zwischen Bildern mit einem Farbstandard in GIMP

Ich habe einen Farbstandard in jedem Foto, von dem ich die genauen Farben kenne. Ich habe ein separates PNG davon und möchte es als Referenz für die anderen Fotos verwenden, so dass die Farbe/Beleuchtung abgestimmt werden kann. Das Problem ist, dass ich nicht herausfinden kann, wie ich das erreichen kann - besonders rechtzeitig. Ich habe ein paar hundert Fotos, die ich analysieren muss, so dass manuelle Feinabstimmung der Farbkurven nicht ausreichen wird. Stattdessen benötige ich einen automatisierten Weg (oder halbautomatisch), um die Fotos zu durchlaufen und die Farbstandards in jedem Foto exakt an den Farbstandard anzupassen, um sicherzustellen, dass die Beleuchtung/Färbung in jedem Foto insgesamt konsistent ist.

Ich benutze GIMP, um zu versuchen, das alles herauszufinden, so dass Verweise darauf spezifisch hilfreicher wären, als über Photoshop zu sprechen. Ich habe versucht, das Match-Histogramm-Skript, das über diesen Link http://www.silent9.com/blog/archives/162-Gimp-Script-Histogram-Match.html heruntergeladen werden kann, dass Rob A vor einer Weile gemacht, aber es funktioniert nicht ganz so, wie ich es brauche; Die Farben des Standards im bearbeiteten Foto entsprechen nicht dem tatsächlichen Standard.

This is an image containing the subject and the standard for scale and colour reference.

ich den Standard in diesem Foto benötigen die wahre Farbe Standard angepasst werden (konnte nicht aufgrund der geringen Reputation bieten!), So dass die Farben des Motivs werden in der Fotografie genau dargestellt.

Vielen Dank für jede Hilfe, die Sie geben können - ich schätze es wirklich.

Andrew

[Bearbeiten]

Als Reaktion auf Mark Setchell,

Sorry - ich bin seit dem letzten Weilchen entfernt und dieses Projekt wurde auf Sparflamme gesetzt. Ich habe versucht, Ihre Methode, aber die Farben auf der Farbkarte im Foto müssen ihre wahren RGB-Werte entsprechen. Als ich deine Methode gemacht habe, hat es den blauen Farbstich losgeworden, den du angesprochen hast, der toll ist, aber ich konnte das Foto nicht verändern, um es in seinen "wahren Farben" zu sehen. Zum Beispiel habe ich die RGB-Werte für die obere rechte Ecke der roten Kachel in einem Foto gemittelt und habe R: 173,7 G: 64,2 B: 38,0. Die wahre Farbe dieser Kachel (wie vom Hersteller der Farbkarte angegeben) ist jedoch R: 162 G: 60 B: 60. Ich habe verschiedene Methoden ausprobiert, um die Kacheln anzupassen, aber den Unterschied in den RGB-Werten die verschiedenen Farbkacheln sind nicht einheitlich - was ich damit meine ist, dass der Unterschied in den R-Werten für die oben erwähnte rote Kachel 173,7-162 = 11,7 ist, aber für die darunter liegende gelbe Kachel ist die Differenz der R-Werte (im Foto und wahre Farbe) ist 44.7. Es scheint kein Muster zu sein, also bin ich mir nicht sicher, wie ich das anstellen soll. Die Tatsache, dass es übereinstimmt, ist zwingend erforderlich, da die wahre Farbe der Schale quantifiziert und in der statistischen Analyse verwendet werden muss. Wenn ich Werte verwende, die die Shell nicht wirklich repräsentieren, ist die statistische Arbeit irrelevant, da sie nicht die wahre Farbe der Shell widerspiegelt. Bekommst du, was ich sage?

Entschuldigung nochmal für eine Weile, um zurück zu kommen. Hoffentlich kannst du mir dabei helfen!

+0

Ist die graue Karte immer in der gleichen Position und in der gleichen Größe in Ihrem Bild? –

+0

Hat meine Antwort oder andere Ihr Problem gelöst? Wenn ja, dann überlege dir bitte, ob du es als Antwort akzeptierst - indem du auf das grüne Häkchen neben der Stimmenzahl klickst. Wenn nicht, sag bitte, was nicht funktioniert hat, damit ich oder jemand anderes dir weiter helfen kann. Vielen Dank. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 –

Antwort

0

Normalerweise verwende ich Photoshop zum Farbkorrekturen - mit der grauen Pipette auf einem grauen Mittelton.Da Sie keine Photoshop-Lösungen wünschen, würde ich auf Imagemagick zurückgreifen, das kostenlos und auf den meisten Linux-Distributionen installiert ist und für OSX und Windows verfügbar ist - es hat auch Python-, Perl-, PHP-, .NET-, Rubin- und Java-Bindings, aber ich benutze es einfach an der Eingabeaufforderung im Terminal hier. Eine Art der Farbkorrektur besteht darin, einen Mittelton zu finden und zu sehen, wie weit er von reinem Grau entfernt ist (d. H. Wenn alle Farbkomponenten gleich sind) und diese Entfernung dann als Korrektur angewendet wird. Also, in Ihrem Bild, kann ich das mittelgraue Fliese finden und Ernte aus wie folgt aus:

convert shell.png -crop 32x32+459+268 grey.png 

enter image description here

Ich kann auch seine Komponenten sehen, indem sie es squidging (TM) bis auf eine einzelnes Pixel durch Mittel und fragen ImageMagick, mir zu sagen, was dieser Wert ist:

convert shell.png -crop 32x32+459+268 -resize 1x1! txt: 
# ImageMagick pixel enumeration: 1,1,65535,srgba 
0,0: (36681,36638,33104,65535) #8F8F81FF srgba(143,143,129,1) 

So ist die rote und grüne höher als die blau - es hat einen Farbstich.

Um dies zu korrigieren, wäre ein Ansatz, diese Farbe zu erhalten und sie zu invertieren und dann die Umkehrung des Farbstichs auf das gesamte Bild wie eine Farbkorrektur anzuwenden. Ich würde das tun wie folgt aus:

convert shell.png \ 
\(+clone -crop 32x32+459+268 -resize 1x1! -negate -scale 640x479! \) \ 
    -compose overlay -composite result.png 

enter image description here

Also, die \(... \) setzt einige „beiseite Verarbeitung“, in dem ich das Originalbild und Ernte klonen aus der graue Ziegel auf. Dann mittle ich dieses Grau, indem ich es auf ein einziges 1x1 Pixel skaliere. Dann invertiere ich es um eine Korrektur vorzunehmen und skaliere es wieder auf die Originalgröße. Diese resultierende Waschung wird dann auf das Originalbild angewendet, indem es als Überlagerung zusammengesetzt wird.

Wenn sich Ihre graue Karte zwischen den Bildern bewegt, müssen Sie etwas mehr Arbeit erledigen, um die mittlere graue Kachel zu finden, aber das sollte nicht unüberwindbar sein.

Ich denke, Sie könnten diese Technik mit der GIMP anpassen und verwenden, aber das ist mir nicht vertraut.

+0

Werfen Sie einen Blick auf den editierten Teil meines ursprünglichen Posts - es war zu lang, um als ein zu enthalten Kommentar zu Ihrer Antwort. Vielen Dank! –

0

Luca de Alfaro white balance script funktioniert mehr oder weniger was Sie brauchen. Es ändert den Farbton des gesamten Bildes, so dass eine Farbe im Bild genau mit einer Referenz übereinstimmt.

Es kann auch eine Farbe annehmen und genau grau machen (bei gleicher Leuchtkraft), also taxieren Sie einfach etwas, das grau/weiß sein sollte (z. B. eine graue Tabelle, ein Blatt Papier, die Spülmaschine oder die Kappe) eines Nutella-Glases) und führen Sie das Skript aus.

Der Quellcode des Skripts zeigt, dass es etwas komplexer ist, als es scheint.