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
Weitere Produkte im Medialinx Shop »
Versandartikel
Onlineartikel
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...





