CHDK Wiki
Advertisement

Diese Anleitung demonstriert, wie mit CHDK Fehlpixel (=ständig leuchtende oder falschfarbene Pixel, auch "Badpixel" oder "Hotpixel" genannt) aus den Bildern entfernt werden können.

Fehlpixelarten[]

Es werden zwei unterschiedliche Arten von Fehlpixeln unterschieden:

1) Fehlpixel, die bereits bei der Herstellung der Kamera vorhanden sind

Der Hersteller integriert diese Fehlpixel in eine Liste in der Kamera-Firmware und rechnet sie bei der Bilderzeugung automatisch heraus.

2) Fehlpixel, die nach der Fertigung auftreten

Da diese Fehlpixel nicht in der kamerainternen Liste enthalten sind, sind sie im Bild als störende Punkte sichtbar.

CHDK-Funktionen[]

In CHDK gibt es zwei Funktionen, die diese unterschiedlichen Fehlpixelarten verwenden:

Für DNG-Bilder (badpixel.bin)[]

a) Fehlpixelverarbeitung beim Speichern von RAW-Bildern im DNG-Format

(siehe Badpixel removal)
Die Speicherung der RAW-Daten im DNG-Format lässt sich nur aktivieren, wenn sich im Ordner \CHDK die Datei badpixel.bin befindet. Diese Datei enthält die in der Kamera-Firmware vom Hersteller hinterlegten Fehlpixel (Fall 1). Bei der Verarbeitung der RAW-Daten durch CHDK werden diese Fehlpixel entfernt, die Original-Firmware macht dasselbe bei der Erstellung der JPG-Bilder.

Generelle Fehlpixel[]

b) Fehlpixel entfernen (Bad pixel removal) aus dem RAW-Menü

(siehe Firmware usage: Hot-Pixel Removal)

Ist die Funktion im CHDK-Menü aktiviert, werden diese Fehlpixel automatisch entfernt, und zwar sowohl in RAW-Dateien als auch in „normalen“ JPG-Bildern.


Hierzu muss im Ordner \CHDK eine Datei mit dem Namen badpixel abgelegt werden, welche die Koordinaten der Fehlpixel (Fall 2) enthält:

1.) Eine RAW-Aufnahme bei abgeschalteter Rausch-Reduktion ("Dark Frame Subtraction") erzeugen: lange Belichtungszeit (z.B. 4 Sekunden) wählen, das Objektiv muss vollständig verdunkelt sein

2.) Die Datei "show_bad.zip" herunterladen von [1], anschließend in einen leeren Ordner entpacken

  • Tipp: Die .zip - Datei enthält neben dem ausführbaren Programm show_bad.exe auch den Quellcode: show_bad.c. Dieser kann auf dem Mac einfach compiliert werden über das Kommando "gcc show_bad.c -o show_bad"; die ausführbare Datei heißt dann "show_bad". Voraussetzung: Das Entwicklungspaket (XCode) mit Compiler muß installiert sein. Unter Linux funktioniert es analog.
  • Warnung: Sowohl Programm als auch Quelltext sind völlig veraltet (März 2010) und unterstützen neuere Kameras bzw. ihre Sensorgrößen (z.B. 16 MP) nicht. Führt die Anwendung des Programms zu "file is unknown", muß man den Quelltext um die entsprechende Zeile für die eigene Kamera erweitern und das Programm neu übersetzen. Die Sensorgröße ermittelt man am besten direkt durch einen Blick in den CHDK-Quelltext (https://tools.assembla.com/svn/chdk/trunk/platform/<meine-Kamera>/platform_camera.h). Dabei ist zu beachten, daß hier die RAW-Bildgröße zählt (CAM_RAW_ROWPIX und CAM_RAW_ROWS) und keinesfalls die geringfügig kleinere JPEG-Bildgröße. Neuere Kameras haben durchgängig 12 bpp (Bit pro Pixel), daher kann man sie getrost analog zu den anderen 12-bpp-Sensoren in den Quelltext einfügen (wer sicher gehen will, frage seinen Orthopäden, und wer sichergehen will, konsultiere noch einmal die obige Datei und suche nach dem Symbol CAM_SENSOR_BITS_PER_PIXEL). Wie im Quelltext zu erkennen, muß das Programm allein die Dateigröße als Schlüssel verwenden, um das Sensorformat festzustellen, da die die RAW-Dateien ja keinerlei Meta-Informationen enthalten.

3.) Die unter Punkt 1.) erstellte RAW-Datei in diesem Ordner ablegen, dann von diesem Ordner ausgehend in einer Kommandozeile („Eingabeaufforderung“ bzw. „Terminal“) die Datei badpixel erzeugen:

show_bad.exe <Dateiname_der RAW_Datei> <Toleranzwert> > badpixel

also z.B.

 show_bad.exe CRW_0281.CRW > badpixel

  • Der Toleranzwert definiert die Erkennungsempfindlichkeit, es sollte ein Wert zwischen 64 und 128 verwendet werden; fehlt dieser Parameter, wird ein Wert von 30 als Vorgabe verwendet.
  • mit dem Umleitungssymbol > wird die Ausgabe des Programms direkt in die Datei badpixel umgeleitet.

4.) Die so erzeugte Datei muss nun in den Ordner \CHDK auf die Speicherkarte kopiert werden.


Nun kann die Funktion im CHDK-Menü (RAW-Einstellungen -> Pixelfehler entfernen) aktiviert werden.

optische Kontrolle[]

Die korrekte Funktion der Fehlpixelentfernung kann folgendermaßen überprüft werden:

  1. Mit verdunkelter Optik und langer Belichtungszeit je eine Aufnahme mit ein- und mit ausgeschalteter Fehlpixelentfernung aufnehmen
  2. Beide Bilder in einem Bildbearbeitungsprogramm oder Anzeigeprogramm (Empfehlung: XNView Viewer) öffnen
  3. Eine ausreichende Vergrößerung einstellen, so dass in der Aufnahme ohne Fehlpixelentfernung die Störpixel sichtbar sind; die Koordinaten merken
  4. Die zweite Aufnahme an diesen Koordinaten vergleichen

Mit XNView kann dies sehr elegant erfolgen:

  1. In der ersten Aufnahme den Bereich mit dem Fehlpixel per Maus markieren, diese Markierung speichern (Menü "Bearbeiten" -> "Markierung-Größe" -> "Aktuelle Markierung speichern als Benutzerdefiniert")
  2. Die zweite ("entstörte") Aufnahme in einem neuen Tab öffnen, die benutzerdefinierte Markierung mit der Taste c anwenden
  3. Nun ist der gleiche Bildbereich markiert; mit den Tasten + und - auf dem Nummernblock kann gezoomt werden.
Advertisement