Image Stacking gegen Bildrauschen

Bildverbesserung durch „Image Stacking“

Die Bild-Sensoren digitaler Kameras erzeugen grundsätzlich ein leichtes meist zufälliges Rauchen, das im Normalfall nicht zu sehen ist oder gar stört. Besonders günstige Kameras mit sehr kleinen Sensoren hingegen neigen vor allem bei geringem Licht schnell zu starkem Rauchen.

Eine sehr gute Möglichkeit zufälliges Bild-Rauschen zu entfernen ist das sog. „image stacking“ und wird seit längerem in der Astrophotographie verwendet, um schwach leuchtende Sterne oder Neben zu verstärken und gleichzeitig das ebenfalls verstärke Bild-Rauschen zu reduzieren. Dazu wird vom gewünschten Motiv eine Serie an Bildern gemacht und diese zu einem Bild vereint. Im ersten Schritt werden die einzelnen Bilder aneinander möglichst gut ausgerichtet und im zweiten Schritt wird der Median der Pixel aus den übereinander liegenden Bildern (stacked images) berechnet. Der Vorteil ist, dass dabei Bildinhalte die nur auf einem bzw. wenigen Fotos zu sehen sind (z.B: störende Personen, Flecken, Pixelfehler, …) völlig herausgerechnet werden und verschwinden.

Für die Astrophotographie gibt es eine Vielzahl von Software-Tools die darauf spezialisiert sind, die Bilder einer Serie anhand von Sternen-Punkten auszurichten und danach zu vereinen. Andere Programme versuchen durch Kombination mehrerer (meist) Maktro-Aufnahmen mit unterschiedlichem Fokus-Punkt ein einheitlich scharfes Bild zu berechnen. Wieder andere berechnen aus einer Belichtungs-Reiche eine HDR (high dynamic range) Aufnahme.

Das Kommandozeilen Tool „Anti-Lamenessing Engine“ (ALE) von David Hilvert ist in der Lage, eine Serie von Bildern zu „stacken“ um das Bild-Rauschen zu reduzieren (noise reduction).

ALE is an image-processing program used for tasks such as image mosaicking, super-resolution, de-blurring, noise reduction, anti-aliasing, and scene reconstruction. Its principle of operation is synthetic capture, combining multiple inputs representing the same scene.
ALE is a synthetic capture engine and renderer accepting, as input, a sequence of image frames, and producing, as output, rendered images, registration data, and 3D models (currently experimental). [David Hilvert, 2009]

Die Anti-Lamenessing Engine ist ein Bildverarbeitungs-Programm zur Erstellung von Bild-Mosaike, Super-Auflösung (Super-Resolution), Verringerung von Unschärfe, Verminderung von Bildrauschen (noise reduction), Anti-Aliasing und Szene Rekonstruktion.

Nachdem die Originale Webseite von David Hilvert nicht mehr verfügbar ist, sei auf die bei Archive.org archivierte Version der Seite verwiesen: http://auricle.dyndns.org/ALE/. Hinweise zur Installation sind am Ende des Artikels zu finden.

******************************
ALE Help Text, version 0.9.0.3
Section: Usage
******************************

Usage: /usr/bin/ale [<options>] <original-frame> [<supplemental-frame> ...] <output-file>
or: /usr/bin/ale [<help option> ...]
or: /usr/bin/ale --version

Help options:
--hu              Usage (this message).
--hf              Image files.
--he              Exclusion regions.
--ha              Alignment (not exposure-related).
--hr              Rendering (not exposure-related).
--hx              Exposure.
--ht              Transformation data files.
--hc              Control points.
--hl              Filtering (PSFs, rendering chains).
--hd              Devices.
--hi              User Interfaces.
--hp              Process details.
--hs              Argument scope (Experimental).
--hv              Video stream processing (Experimental).
--h3              3D Modeling (Experimental).
--hz              Undocumented options.
--hA              Concatenate all help pages.

ALE kennt intern nur das „Portaple Pixmap“ (PPM) Bild-Format und ist unter Umständen nicht in der Lage andere Datei-Formate wie JPG, TIFF oder PNG einzulesen. Entscheidend ist, ob ALE mit Unterstützung von ImageMagick kompiliert wurde, andernfalls wird eine entsprechende Fehlermeldung ausgegeben und man muss vor der Verarbeitung der Bild-Serie mit ALE die Bilder ins das PPM-Format konvertierten.

Um das Bildrauschen mit Hilfe von ALE aus einer Serie von Bildern mit dem selben Motiv zu reduzieren, sind folgende Schritte nötig:

1. (optional) Umwandeln der Bilder in das PPM-Format mit ImageMagick
Nachdem ALE unter Umständen nur mit PPM-Datein umgehen kann, müssen die Fotos der Ausgangsserie zuerst von zB. JPG, PNG, TIFF, … in das PPM-Format umgewandelt werden. Unter Linux eignet sich dazu von ImageMagick das Kommando „morgify“ das mit folgendem Befehl alle Bilder in einem Verzeichnis in PPM-Datein umwandelt (die Originale bleiben dabei erhlaten):

<span style="color: #999999;">mogrify -format ppm *.jpg</span>
<span style="color: #999999;">

2. Image Stacking mit ALE
ALE verarbeitet nun die PPM-Bilder in dem es zuerst versucht, diese möglichst exakt zur Deckung zu bringen. Danach wird der Median oder Zentralwert für jede Bild-Stelle aus der Serie berechnet und das fertige Bild als PNG ausgegeben. Dieser Vorgang kann je nach Bildgröße und Anzahl der Bilder mehrere Minuten dauern:

ale *.ppm stacked.png
Output file will be 'stacked.png'.
Original Frame:
'IMG_1418.ppm'.
Supplemental Frames:
'IMG_1.ppm'*** okay (95.919827% match).
'IMG_2.ppm'*** okay (95.869136% match).
'IMG_3.ppm'*** okay (94.782779% match).
'IMG_4.ppm'*** okay (94.840412% match).
'IMG_5.ppm'*** okay (95.487036% match).
'IMG_6.ppm'*** okay (95.008156% match).
'IMG_7.ppm'*** okay (95.095487% match).
Re-filtering incremental results.
Iterating Irani-Peleg.
Average match: 95.286119%

3. (optional) Normalisierung mit ImageMagick
Zum Schluss muss das kombinierte Bild eventuell noch normalisiert werden. Zur Normalisierung dient das Tool „convert -normalize“ von ImageMagick:

convert -normalize stacked.png stacked-normalized.png

Das mit ALE erstellte Bild wird wesentlich weniger verrauscht als die einzelnen Bilder und liefert fließender Übergänge.

Unscharfe Bilder

IMG_1440

Seek Thermal XR – Wärmebilder

Das folgende Wärmebild eines elektrischen Heizgerätes wurde mit der Seek Thermal XR Wärmebildkamera aufgenommen. Um das Rauchen im Bild bzw. die ausgefransten Pixel an den kontrastreicheren Stellen im Bild zu reduzieren, wurden mit Hilfe von ALE 6 Aufnahmen durch „image stacking“ zu einem merklich besseren kombiniert.

Vergleich Original und Stacked Image
Vergleich zwischen dem kombinierten Bild (links) und dem Original-Einzelbild (rechts).

Installation von ALE

Je nach Quelle kann es nötig sein, den Quellcode von ALE zu laden und neu zu kompilieren. Der Vorteil ist, dass die Unterstützung von anderen als nur dem PPM-Format mit Hilfe von ImageMagick mit kompiliert werden kann.

Mangels fertiger Binary-Files im Web, sind unter Mac OS X Yosemite folgende Schritte nötig:

1. Installation der Xcode Command Line Tools mit dem Befehl:

xcode-select --install

2. Lizenzvereinbarung von XCode bestätigen:

sudo xcodebuild -license

Mit der Leertaste bis ans Ende des Textes scrollen.

„agree“ eingeben und mit Enter bestätigen

3. Download von MacPorts von der offiziellen Webseite: http://www.macports.org/install.php und Installation

4. Aktualisierung von MacPorts mit:

sudo port -v selfupdate

5. Installation von ALE

sudo port install ale

Quellenangaben