Open Source im professionellen Einsatz

Farbkorrektur

Fangen in diesem Zustand die Pufferwerte plötzlich wieder zu holpern an, hat das Skript den Bereich einer Karte verlassen und geht anschließend in den Zustand "Suche nach der nächsten homogenen Stelle" über. Auf diese Weise sollte es alle drei gesuchten Regionen finden und die gefundenen RGB-Werte im Yaml-Format ausgeben. Damit kann das im vorigen Snapshot-Artikel vorgestellte Skript »picfix« die White-Balance weiterer Bilder mit denselben Lichtverhältnissen korrigieren [2].

Wendet sich der Fotograf also einer neuen Szene zu, zieht er die drei Kärtchen aus der Hosentasche, hält sie ins Bild und knipst ein Referenzfoto. Alle anschließend geschossenen Fotos lassen sich später daheim mit Hilfe von Gimp und dem bereits vorgestellten »picfix«-Skript korrigieren.

Damit das Verfahren bei einem homogenen Bildhintergrund nicht ins Schleudern kommt, prüfen die Zeilen 48 bis 50 in Listing 2 nicht nur ab, ob der Durchschnittswert im Puffer kleiner als 3 ist, sondern auch, ob sich der Algorithmus gerade im mittleren Bilddrittel aufhält. Die äußeren Bilddrittel ignoriert es schlicht.

Arrays als Puffer

Als Ringpuffer verwendet das Skript normale Perl-Arrays. Neue Werte hängt es mit »push()« einfach hinten an und prüft, ob das Array damit die Maximallänge des Ringpuffers überschritten hat. Ist dies der Fall, löscht es das erste Arrayelement mit »shift()«. Anschließend ist der Array nicht nur um ein Element kürzer, sondern das zweite ist die neue Nummer eins.

Um die erste Ableitung der recht komplexen Pixelfunktion zu ermitteln, kommt ein vereinfachtes numerisches Verfahren zum Einsatz. Im Ringpuffer »@intens_ring« liegen die Intensitätswerte der letzten 50 Pixel, die durch Addition der Rot-, Grün- und Blauwerte an den bereits verarbeiteten x-Koordinaten entstanden sind. Zur Extraktion der drei Werte aus dem von der Methode »rgba()« zurückgegebenen Vierteiler nutzt das Skript einen so genannten Array-Slice mit der Notation »@components[0,1,2]«.

Diesen Artikel als PDF kaufen

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook