Vortrag

Angelegt von Andreas Steinel Thu, 30 Nov 2006 00:54:00 GMT

Heute habe ich meine zweite Präsentation auf Englisch gehalten und es hat gut geklappt. Thema dieses Vortrags war die Non local mean-Filterung. Erste Eindrücke können in einem meiner vorherigen Blog-Einträg nachgelesen werden.

Die Entrauschungsmethode ist sehr einfach aber sehr wirkungsvoll. Hier noch einige Bilder der Entrauschung:

  • 400D – Schriftzug: Dieses Bild entstand im Aufzug mit einem sehr großen ISO-Wert und beinhaltet dementsprechend viel Rauschen. Nach dem Filtern mit geschätzter Standardverteilung von 5 kann sich das Ergebnis sehen lassen.

  • Auge: Hier wurde ein Auge ebenfalls mit geschätzter Standardverteilung von 5. Es verschwinden einige wenige Details in der Iris, sonst sieht das Bild aber sehr gut aus.

  • Umbau: Das Bild wurde mit einer Handy-Kamera aufgenommen und mit einer geschätzten Standardverteilung von 3 entrauscht:

Der einzige Nachteil des Verfahrens ist die extreme Langsamkeit.

Posted in ,  | Tags  | keine Kommentare

Klick

Angelegt von Andreas Steinel Sat, 04 Nov 2006 18:20:00 GMT

Nun endlich komme ich mal dazu, meine neue Kamera vorzustellen. Wie man hier lesen kann, habe ich Kamera bei Amazon eingeschickt. Diese haben mir die Kosten erstattet und ich habe mir danach die Canon 400D gekauft.

Doppeldaumenhoch für Amazon

Posted in  | keine Kommentare

Kamera eingeschickt

Angelegt von Andreas Steinel Wed, 18 Oct 2006 00:20:11 GMT

Heute habe ich endlich meine Kamera zu Amazon zurückgeschickt, da diese nicht mehr funktioniert.

Der versicherte Versand kostete mich schlappe 16 Euro mit Verpackung. Nun darf ich 4-6 Wochen warten :-(

Posted in  | keine Kommentare

kaputt :-(

Angelegt von Andreas Steinel Thu, 05 Oct 2006 05:06:00 GMT

schnief Die Kamera geht nicht mehr.

Seit einer Fototour am 4. Oktober geht die Kamera nicht mehr an. Momentan bin ich in Kontakt zu Canon, wie dieser Garantiefall nun zu handhaben ist.

Posted in  | keine Kommentare

Wiederherstellung von verlorenen Bildern

Angelegt von Andreas Steinel Fri, 29 Sep 2006 16:50:00 GMT

Da macht man schön Bilder … ganze CF-Karten voll und dann sowas. Eingelegt … nix. Er kann es nicht mounten und die CF-Karte war voller Bilder! Dateisystem zerstört, Hilfe!

FreeBSD kann es nicht mounten und Windows kann erst garnix damit anfangen. Klasse, dachte ich mir … was nun?

Als erstes hab ich mir die CF-Karte als Image mittels cp auf den Rechner gezogen. Danach habe ich die Wiederstellungsprozedur gestartet:

Als erstes habe ich mir angeschaut, wie ein Bild eigentlich binär aussieht und konnte die ersten 8 Bytes, die bis auch eine Stelle immer identisch sind, feststellen. Mit diesem Wissen kann man nun grepen. Dabei hatte ich zuerst im Sinn, ein C-Programm zu schreiben, welches die Daten binär identifizieren kann. Schlussendlich habe ich aber nur hexdump und grep zum Finden der Offsets verwendet.

Dabei habe ichzuerst eine Liste der Offsets für jedes Bild erstellen lassen:

hexdump -C ~/CF-Sicherung-mit-Bildern.iso| grep Exif >| grep-result

Eine solche Zeile mit dem Offset sieht wie folgt aus:

00049000 ff d8 ff e1 31 fe 45 78 69 66 00 00 49 49 2a 00 |....1.Exif..II*.|

Die erste Zahl ist das Offset (hexadezimal), danach kommen 16 Bytes an Daten in Bytes und nach der Pipe kommt der Teil als Ascii-Zeichen.

Mit diesen Informationen ist es nun möglich die Bilder zu exrtahieren. Einziger Nachteil bei dieser Rekonstruktion stellt die Dateisystemfragmentation dar. Sobald ein Bild auf dem Dateisystem fragmentiert wurde ist es unmöglich dieses mit dieser Methode wiederherzustellen. Aber es ist zumindest ein Ansatz.

Nun habe ich mir noch ein Ruby-Skript geschrieben, mit dem man die Daten anhand des Offsets wiederherstellen kann. Dabei werden einfach eine gewisse Menge von Bytes (hier 4.6 MB) nach dem gefundenen Offset kopiert. Dies entspricht dem Herauskopieren des vermeindlichen Bildes. Am einfachsten geht dies mit dd und der skip-Option. Aus Performancegründen ist es ratsam, immer 16-Byte-Blöcke zu benutzen, aber nicht notwendig. folgendes Skript wird verwendet, um die Daten zu extrahieren:

1
2
3
4
5
6
7
8
9
#!/usr/bin/env ruby

raw = File.open("grep-result").readlines
raw.each_index do |i|
    size = raw[i].split(" ")[0].to_s.to_i(16) / 16
    puts size
    Kernel.system "dd if=/home/andreas/CF-Sicherung-mit-Bildern.iso" +
        " of=#{i.to_s.rjust(3,"0")}.jpg count=250000 bs=16 skip=#{size}"
end

Viele Bilder wurden komplett wiederhergestellt, leider nicht alle. Dort gab es fragmentierungsprobleme und die Bilder sind teilweise zerstört. Dies ist schade, aber ich muss damit leben. Wenigstens konnte ich mehr als 70% der Bilder retten.

Zu guter letzt habe ich alle Bilder durch convert gejagt, um den Datenmüll, der sich am Ende jedes Bildes befindet, loszuwerden. Dieser Datenmüll ist durch das Kopieren entstanden.

Resultat:

Es wurden 102 Bilder extrahiert, eines ist komplett kaputt, 9 teilweise kaputt und 92 Bilder sind restauriert. Das sind knapp über 90%! Juhuu

Posted in , ,  | 1 comment

neuer Kamerauslöser

Angelegt von Andreas Steinel Thu, 28 Sep 2006 23:40:00 GMT

Heute kam endlich die lang erwartete Lieferung von Reichelt an. Die Bauteile für meine Schaltung waren alle, wie bestellt, in doppelter Ausführung vorhanden.

Nach dieser Anleitung habe ich Teile zusammengebaut und gelötet. Da ich die Fernsteuerung mit dem Palm betreiben wollte, habe ich mir ein kleines Programm geschrieben mit dem man den seriellen Port des Palm öffnet und ihn wieder schließt. Die sollte laut der obrigen Anleitung funktionieren. Dies tat es aber leider nicht. Nach fast einer Stunde experimentieren und testen einiger Varianten der Programmierung versuche ich mein Glück an einem “normalen” Rechner. Problem dabei war leider, daß keiner meiner Laptops eine serielle Schnittstelle besitzt. Doch, da war noch einer … ich kramte einen sehr alten Rechner aus – Compaq Elite SX 50 mit 12 MB-RAM. Darauf lief noch immer Linux 2.2 und er hatte zwei serielle Schnittstellen. Nach einem fopen von /dev/ttyS0 und dem, fast eine Ewigkeit erscheinenden, Kompilieren funktionierte die Fernbedienung per Rechner tadellos. Die Verlötung funktioniert wenigstens :-/ Problem bleibt nur noch der Palm, wobei ich hier die Dockingstation als serielles Kabel verwende und die Fernbedieung mittels Gender Changer anbinde. Vielleicht ist das der Fehler in der Überlegung.

So sieht die momentane Lötung aus. Leider passt es nicht mehr in das Gehäuse und ich muß wir was neues überlegen. Ich werde wohl eine neue Box bauen, die dann auch noch scharfstellen kann. Wobei das Scharfstellen dann manuell erledigt werden muß. Dazu habe ich ja schon einmal eine Box gebaut

Posted in  | 2 comments