Dias scannen 4.7.21

Inhaltsverzeichnis

1 Vorwort 2

1.1 Nomenklatur 2

2 Weitere Informationsquellen 2

3 Aufbau 3

3.1 Mechanischer Aufbau 3

3.2 Elektrischer Aufbau 4

4 Das Abfotografieren mit dias.py 5

4.1 Einrichtung des Raspberry 5

4.2 Installation von dias.py /Raspberry 5

4.3 Parameter im dias.py Skript 6

4.4 Spiegel der Kamera 7

4.5 Kameraeinstellung 7

4.6 Kamera- und Projektorspeziefisches 7

4.7 Los gehts 7

4.8 mögliche Probleme 8

4.9 Ergebnis 8

5 Allgemeines zu PostDiaDigit 9

5.1 Installation 9

5.2 Hauptfenster 9

6 Umbenennen mit Bearbeiten/Umbenennen 9

6.1 Verzeichnis wählen/neu laden 10

6.2 Anzahl Dias 10

6.3 Maske 10

6.4 Löschen 10

6.5 Umbenennen 10

6.6 Prüfen und los 10

6.7 Einstellungen sichern 11

7 Schneiden 11

7.1 Grundsätzliches 11

7.2 Schneiden mit Bearbeiten/Schneiden 11

7.3 Problemlösung mit den Kreuzen 12

7.4 Und weiter 13

8 Dubletten 13

8.1 Dubletten finden mit: Bearbeiten/Dubletten 14

9 Diarahmen 14

10 Erfahrungsberichte 15

11 Rechtliches und Quellcode: 15

11.1 Lizenz 15

11.2 Quellcode 15

12 Änderungen 15

13 Bekannte Probleme und Aussicht 15




1Vorwort


Es gibt wenige Alternativen um Dias zu digitalisieren, entweder man lässt es machen, muss dafür alle Dias irgendwo abgeben, und recht viel zahlen, oder man benutzt Diascanner, hier gibt es soweit mir be­kannt nur einen bei dem man nicht jedes Dia einzeln irgendwo reinstecken muss. Der ist sehr teuer und vor al­lem, wie auch z.B. mein Flachbettscanner mit Diaeinsatz, braucht es ewig, je nach Auflösung meh­rere Minuten pro Bild. Bei meinen knapp 30000 Dias war das indiskutabel. Die einzige mir akzeptabel vor­kommende Methode ist, die Dias abfotografieren, und zwar so, dass auf Knopfdruck eine ganze Schie­ne automatisch durchläuft und das in etwa der Zeit die o.g. Scanner für ein einzelnes Bild brauchen. Es gibt schon einige Seiten zu diesem Thema, wo beschrieben wird wie man das ganze zusammenbastelt. Al­lerdings habe ich nirgends etwas zu der Frage gefunden was man mit den Bildern macht nachdem sie auf dem Speicherchip der Kamera sind. Es bringt ja nichts, wenn man pro Bild wenige Sekunden für das Ab­fotografieren braucht, dann aber mehrere Minuten für die Nachbearbeitung. Deshalb habe ich diesem Thema den größten Teil diese Dokumentes gewidmet und auch ein Programm geschrieben das kostenlos incl. Quellcode verfügbar ist.

1.1Nomenklatur

In der Anleitung benutze ich einige Ausdrücke die einmal geklärt werden sollten:

2Weitere Informationsquellen

Vor etlichen Jahren hatte ich schon vor meine Dias zu digitalisieren und mir einen Umrüstsatz von foto­novum gekauft. Was mir damals fehlte war die passende Kamera.

Es gibt einige weitere Quellen die ähnliche Aufbauten zeigen und von denen ich mich auch inspirieren lies:

In der Make Zeitschrift wurde es recht ausführlich beschrieben, Hauptunterschied zu meiner Lösung ist die Methode den Projektor zu schalten und der genaue Aufbau.

Für das verwendete Relais von AZ-Delivery gibt es auf deren Seite eine Ausführliche Doku zum Down­load.

Eine der Seiten mit recht ausführlicher Anleitung zum Hardwareaufbau findet sich hier.


3Aufbau

3.1Mechanischer Aufbau

Hier ist mein Aufbau zu sehen, aber es muss nicht genau so sein, wichtig ist nur, dass Kamera und Projektor auf einer Achse angeordnet sind. Die Kamera wird bei mir vom oberen Teil eines Schulterstativs ge­halten, da dies aber unter dem Gewicht des Objektivs nachgab habe ich da noch einen beweglichen Holzklotz drunter gestellt. Da durch den Stativkopf die Kamera höher als der Projektor war habe ich beide schräg an­geordnet. Dies hatte den Vorteil, dass durch verschieben des Klotzes das Objektiv etwas rauf und runter gelassen werden konnte. Die beiden Winkel (weiß und golden) die­nen als Anschlag und defi­nieren eine feste Position des Projektors, dieser kann aber einfach weggenommen werden. Außer der gemeinsamen Achse ist wichtig, dass das Diamagazin Platz hat, also weder gegen das Objektiv noch die Kamera stößt. Dar­aus ergibt sich je nach Geometrie der Min­destabstand Projektor - Kamera. Und dar­aus dann die optimale Brennweite. Bei mir kam es mit dem 105mm Macro gut hin. Tests mit einem an­deren Objektiv und Nah­linse waren nicht wirklich gut. Der zweite Klotz dient dazu das Diamagazin zu unter­stützen, es kam da bei dem Projektor teils zu Blockaden. Das sollte aber bei anderen nicht nötig sein. Wie gesagt habe ich den Umbausatz von fotonovum verwendet, al­lerdings mit der Original Lampe. Alternativ kann man sich die passende Mattscheibe auch selber zurecht­schneiden z.B. aus 0,5-1mm Teflon, s. o.g Artikel in der Make. Dies wurde bei mir auch inzwischen nö­tig, da die Mattscheibe zerbrach. Insgesamt gilt möglichst aus dem was man schon hat etwas zusammen­bauen.

3.2Elektrischer Aufbau

Zum Steuern des ganzen habe ich einen Raspberry 4B verwendet. Ein kleinerer würde es aber auch tun. Und wer sich besser mit Elektronik auskennt kann wohl auch was mit Relais u.ä. basteln. I.w. braucht man etwas das sowohl die Kamera als auch den Projektor steuern kann. Nimmt man wie ich einen Raspberry braucht man trotzdem noch Relais, ich habe eines von AZ-Delivery verwendet.


Legende


A: Fernbedienung des Projektors

B: Relais

C: Raspberry Pi

D: Kamera

rot: neue Kabel

1: Taster

2: vorhandene Anschlüsse am Taster

3: weitere vorhandene Leiterbahnen,…

4: 2 neue Jumper-Kabel in der Fern­bedienung

5: weibliche Stecker der Kabel 4

6: männliche Stecker der Kabel 7, diese passen in 5

7: 2 Jumper-Kabel zum Relais (zu „Common Pin“ und „Normaly Ope­ned pin“)

8: 4 Jumper Kabel zwischen Relais und Raspberry.

9: USB-Kabel

Die verwendeten Bezeichnungen bei (7) entsprechen denen der Anleitung zum Relais von AZ Delivery auf der Seite 4, Details zu den Kabeln 8 sie­he ebenda auf Seite14.

Um den Diaprojektor zu schalten habe ich die Fernbedienung geöffnet und an den Kontakten des Tasters Kabel angelötet (4), die ich dann über das Relais schalten lasse. Zuerst hatte ich vor direkt an den Stecker der Fernbedienung zu ge­hen, so wäre keine Änderung an der Fernbedienung nötig gewesen, habe dann aber eher zufällig das Schaltbild der Fernbedienung gesehen. Da werden nicht einfach zwei der Kontakte des Steckers verbun­den, da ist noch etwas mehr drin. Also war die Alternative dies nachbauen oder eben in der Fernbedienung löten. Ähnlich könn­te man auch mit der Kamera verfahren, das war auch der Grund warum ich ein doppeltes Relais gekauft hatte. Aber dann habe ich die gphoto2 Lib gefunden, damit kann man viele Kameras einfach per USB-Ka­bel (9) steuern. Dies dürfte risikoloser sein. Wie man das Relais mit dem Raspberry o.ä. verbindet steht gut im dazugehörigen Handbuch beschrieben. Wichtig ist nur, dass die verwendete Pinnummer die gleiche wie im Pythonscript ist. Wie in der Anleitung habe ich GPIO14 = Pin 8 verwendet. Apropos Löten, am Raspberry würde ich nicht löten. Um diesen mit dem Relais zu ver­binden bieten sich sog. Jumper Kabel an. Aus zwei weiblichen Jumpersteckern (5) habe ich außerdem die Buchsen in der Fernbedienung des Projektors gemacht: Einfach je ein 3mm Loch gebohrt, den quadrati­schen Stecker etwas rundgefeilt bis er in das Loch passte und eingeklebt. Dies ist deutlich kleiner als z.B. eine Klinkenbuchse. Innen dann das Kabel an den Taster (1) löten. Jetzt kann man mit zwei weiteren männlichen Jumpersteckern (6) von außen das Relais mit der Fernbedienung verbinden. Ansonsten fallen die zwei kleinen Löcher nicht auf, man kann die Fernbedienung also normal weiter benutzen.

4Das Abfotografieren mit dias.py

4.1Einrichtung des Raspberry

Es gibt viele Informationsquellen zum Raspberry, also werde ich als Anfänger hier nicht eine detaillierte Anleitung schreiben, aber eine generelle Übersicht dürfte denen die noch nie etwas damit gemacht haben helfen. Zuerst einmal es gibt verschiedene Modelle, diese unterscheiden sich ggf. auch was diese Minianleitung angeht. Grundsätzlich ist aber folgendes wichtig:

  1. Welcher Raspberry? Wahrscheinlich klappt es auch mit den kleinsten, ich hatte einen 4B. Will man VNC über WLAN nutzen (s.u.) braucht man einen der das kann, also nicht Modell 2. Wahrscheinlich braucht man ihn für diese Anwendung nur eine Woche oder so. Man sollte sich also beim Kauf auch überlegen was man danach damit anfangen will und auch danach entscheiden.

  2. Hardware: Man braucht zumindest den eigentlichen Raspberry, eine passende SD-Karte für das Betriebssystem und z.B. dias.py und ein passendes Netzteil, ein Gehäuse wäre auch nicht schlecht. Zur Einrichtung braucht man einen PC mit Kartenleser, eine Maus, Tastatur und Monitor (oder TV) mit passenden HDMI-Kabel. Spezialisten kommen ggf auch mit whttps://projects.raspberrypi.org/fr-FR/projects/raspberry-pi-setting-up/1eniger aus, aber die lesen dies eh nicht.

  3. Betriebssystem: dazu gibt es wirklich viele Anleitungen , z.B. von Heise oder von raspberry.org

  4. Am einfachsten ist es wenn man so weiter arbeiten kann, also mit Monitor, Maus und Tastatur. Wenn dies nicht klappt, weil man als Monitor z.B. den Fernseher benutzt hat aber nicht weiterhin im Wohnzimmer arbeiten will gibt es verschiedene Lösungen, z.B. die Fernsteuerung über VNC. Man kann dann über einen PC (oder auch Smartphone, Tablet,…) in einem Fenster den Desktop des Raspberry sehen und mit Maus und Tastatur des PC bedienen. Dazu müssen PC und Raspberry normalerweise im gleichen lokalen Netzwerk sein, also i.A. mit dem gleichen Router verbunden sein, per LAN-Kabel oder WLAN. Theoretisch geht es auch aus der Ferne, aber da man ja vor Ort sein muss um die Diaschienen einzusetzen u.ä. ist dies irrelevant. Zumindest beim Raspberry Pi 4 hatte ich ein Problem. Wenn ich ihn ohne angeschlossenen Monitor startete konnte ich mich nicht per VNC anmelden. Dies liegt daran, dass er standardmäßig nur dann die grafische Oberfläche startet wenn beim Booten ein Monitor angeschlossen ist und er mit diesem z.B. eine Auflösung aushandeln kann. Also wenn es klappt, wie bei meinem Raspberry 3 ist alles OK, sonst mal den Raspberry ohne Monitor starten, dann nach einer Minute oder so einen anschließen. Sieht man jetzt einen leeren Bildschirm mit einem blinkendem Cursor hat man besagtes Problem. Man muss dann dem Raspberry einen festen Bildschirmmodus vorgeben, dies geht über die config.txt Datei, weitere Infos hatte ich hier gefunden.


4.2Installation von dias.py /Raspberry

Das Installationsprogramm von PostDiaDigit s.u. legt im Programmordner, also normalerweise: C:\Programme\PostDiaDigit auch einen Ordner raspberry an in den dias.py kopiert wird. Dies muss natürlich auf den Raspberry verschoben werden. Entweder per USB-Stick, oder per VNC,… Dort ist keine wirkliche Installation nötig, es kann aber sein, dass beim Start eine Fehlermeldung kommt, dass das eine oder andere Paket installiert werden muss. Dann einfach nach dem Namen des angegebenen Paketes per Suchmaschine suchen (also z. B. Wenn gphoto fehlt sucht man nach „install gphoto raspberry pi“).

Meist soll man zuerst

sudo apt-get update
sudo apt-get upgrade

ausführen und dann ein speziefisches „sudo apt-get install …“

Dies war mein zweites Python Skript, es sollte also auch für andere recht leicht sein Änderungen einzu­bauen, vor allem, da es ja eine reine Textdatei ist also ein Editor reicht. Man kann aber auch die vorinstallierte Programmierumgebung Thonny nutzen, eine Einführung dazu gibt es z.B. hier. Infrage kämen andere Zeiten, andere Pinnummern, an­dere gphoto2 Befehle…

4.3Parameter im dias.py Skript

Nach dem ersten Block mit import Anweisungen u.ä. kommen die Einstellungen:

#Hardware
Druecker=8 #GPIO Pin
#Einzelauslösung oder Serienbildfunktion
Serie=1 #0: Einzelbild; sonst Serienbildfunktion
#Zeiten
Wait_t=4 #Gesamtzeit pro Bild
Wait_1=2 #Wartezeit von Auslösen der Kamera bis Transport des Projektors
Press=0.3 #Dauer des Drückens für Transport des Projektors

Denkp=5 #nur bei Serienbild: Anzahl Wiederholungen am Anfang

suchStr=b'Nehme Bild'
triggerCommand = ["--trigger-capture"]

Hier im einzelnen:

Variable

Bedeutung

Serie=0

Serie !=0

Wait_1

Wartezeit von Auslösen der Ka­mera bis Transport des Projek­tors

Wartezeit nach Ausführung des TriggerCommand

Wartezeit nachdem die Ka­mera ankündigt, dass sie das nächste Bild macht

Wait_t

Gesamtdauer pro Bild

(Wait_t-Wait_1) ist die Warte­zeit nach Auslösung des Transports. Die Gesamtwarte­zeit ist also etwas länger, näm­lich: Wait_t+Press+die Dauer von TriggerCommand

Dies wird der Serienbild­funktion übergeben. Falls die Kamera es schafft sollte es also der Abstand zwischen 2 Fotos sein.

Denkp

Gibt an wie viele Bilder vom ersten Dia einer Schiene ge­macht werden. Siehe nächster Abschnitt

Wird ignoriert

Wird verwendet

suchStr

Such String für Serienbildfunk­tion

Wird ignoriert

Teil der Rückmeldung der Kamera nach der zum Syn­chronisieren gesucht wird



4.4Spiegel der Kamera

Da ich nicht glaube, dass es der Kamera gut tut wenn der Spiegel 30000 mal rauf klappt habe ich eine Lö­sung gesucht um dies zu verhindern. Dies vor allem, da ich eine D850 geliehen bekommen hatte. Diese ist nicht universal für alle Kameras geeignet. Deshalb gibt es zwei Einstellungen des Skripts. Das univer­selle löst jeweils für jedes Bild einzeln aus. Damit ist die Synchronisierung einfach. Die alternative Versi­on löst eine Serienbildaufnahme aus und versucht den Transport des Projektors damit zu synchronisieren. Dies geht theoretisch relativ einfach, da die Kamera jedes Bild ankündigt, aber dann ist es ja eigentlich schon zu spät. Also warte ich auf die Nachricht und löse 2s später den Bildwechsel aus, in der Hoffnung, dass bis dann das Bild gemacht wurde. Diese Rückmeldung muss das Script natürlich erkennen. Er hängt sicher von der eingestellten Sprache und höchstwahrscheinlich vom Kameratyp ab. Man muss also in das Logfile schauen wie die Rückmeldung ist und einen Teil davon als suchStr dinieren. s.o.

Statt der eingestellten 4s dauert es aber bei den ersten Bildern oft viel länger. Teils eine Minute. Es gab immer wie­der Probleme mit der Synchronisation. Irgendwann habe ich es aufgegeben und einfach die ers­ten 4 Transportbefehle ausgelassen. Das erste Dia jeder Schiene wird also 5 mal aufgenommen. Dies ist über den Parameter Denkp in Dias.py einstellbar, s.o.

4.5Kameraeinstellung

Mit allen Automatikfunktionen habe ich schlechte Erfahrungen gemacht. Also Autofokus abschalten und auch manuell belichten. Ich habe mit der normalen Projektorlampe gearbeitet, andere raten zu einer schwächeren. Damit habe ich folgende Einstellung verwendet:

Blende: 22

Zeit: 1/500 s

ISO: 80

bei einer so kleinen Blende besteht, wie man mir zu spät erklärte, die Gefahr der Beugungsunschärfe. Ja als Physiker hätte ich das wissen sollen ;-) Dies habe ich aber nicht beobachtet, kann aber je nach Objek­tiv vielleicht stärker sein. Der Vorteil ist die hohe Schärfentiefe, man braucht also nicht ganz so genau zu fokussieren und es verzeiht auch z.B. verbeulte Dias. Wegen der Vibrationen im Projektor ist eine kurze Belichtungszeit sicher gut und das die Qualität mit kleinerer ISO-Zahl besser ist sollte auch klar sein.

4.6Kamera- und Projektorspeziefisches

Das Skript ist nur mit einer Nikon D850 und einem Zett Projektor getestet. Bei anderen Geräten kann es sein, dass man an der Synchronisation etwas anpassen muss. Die entsprechenden Konstanten sind am An­fang des Skripts definiert und können geändert werden, s.o.. Je nachdem was man für Magazine verwen­det sollte man auch die angebotenen Werte für die Bilder/Magazin anpassen.

4.7Los gehts

Man führt das Magazin so ein, dass das erste Dia im Projektor ist.

Nach dem Start von dias.py wird gefragt wie viele Bilder aufgenommen werden sollen. Dabei werden einige Stan­dardwerte angeboten. Es gibt aber zwei Sonderfälle:

Nach dem Klick auf den entsprechenden Button, bzw. nach Eingabe der Anzahl (bei ?) geht dann alles au­tomatisch. Der Zyklus wiederholt sich bis man Abbruch wählt.

Das Zuschneiden der Bilder (s.u.) beruht darauf, dass viele Bilder unter gleichen Bedingungen aufgenom­men wurden, man sollte also versuchen mindestens etwa 100 Bilder als Serie zu machen ohne Kamera oder Projektor zu bewegen. Ich habe meist 400-500 gemacht. Danach müssen die Bilder zur Weiterbear­beitung auf den PC kopiert werden. Und wie immer empfehle ich ein Backup zu machen. Außerdem emp­fehle ich in den Ordner in dem man die Bilder kopiert auch eine Textdatei zu schreiben, die Notizen ent­hält was man da aufgenommen hat, zumindest wenn man nicht vor hat sofort das Umbenennen durchzu­führen. Wichtig wären also welche Schienen und wie viele Bilder pro Schiene man aufgenommen hat.


4.8mögliche Probleme

Es kann natürlich passieren, dass der Projektor blockiert, vor allem da ja wohl keiner einen neuen hat. Also bereit sein ggf. einzugreifen. Das Skript abbrechen ist nicht vorgesehen, schneller ist es eh den Pro­jektor abzuschalten. Die Synchronisation funktioniert nicht zu 100% genau. Es kommt also vor, dass ein Dia zweimal und dafür das nächste nicht aufgenommen wird. Wie gesagt sollte dies bei dem Skript mit einzelner Auslösung (Serie=0) nicht passieren. Zum Suchen der Dubletten habe ich ein Programm ge­schrieben, s.u.

4.9Ergebnis

H ier ein altes Bild aus Berlin. Es ist auf dem Kopf und spiegelver- kehrt. Wichtig für das automatische Schnei­den ist, dass um das Bild ein schwarzer Rand ist. Die hellen Flecken weiter außen, es sind Reflexe am Tu­bus des Projektors, stören dagegen nicht. Man könnte meinen, da sei viel vergeudet weil rundherum viel Schwarz ist, aber bei einem Hoch­kant Bild ist oben und unten nur wenig. Wer also nicht zuerst alle Bil­der dre­hen will muss mit die­sem Ausschuss leben. Wer es doch tut sage mir Bescheid, denn dann muss ich das Schneidepro­gramm anpassen, es sucht derzeit immer das „Kreuz“ s.u.




5Allgemeines zu PostDiaDigit

5.1Installation

Das Programm kommt als ein normalen Installationsprogramm: PDD64_setup_0_9.exe o.ä. „64“ da es die 64Bit Variante installiert, und 0_9 da es die Version 0.9 ist

5.2Hauptfenster

Ursprünglich waren dies 4 Programme, die ich dann zu einem zusammengefasst habe, jedes der ur­sprünglichen Programme hat dort einen Eintrag im Menü Bearbeiten. Im Hauptfenster kann man einige allgemeine Einstellungen vornehmen:


Variable

Bedeutung

Sinnvolle Werte

Sprache

Die Sprache des Programms.

Man hat die Wahl zwischen Deutsch Englisch und Französisch

Primäres Fileformat

Das primäre Bildformat, das für die Bearbeitung verwendet wird.

Dieses Format muss von der verwendeten QT-Bibliothek unterstützt werden s. hier.

Sekundäres Fileformat

Das sekundäre Bildformat, das nur beim Umbenennen verwendet wird.

Beliebiges Format, es muss noch nicht einmal ein Bildformat sein


Die eigentlichen Funktionen sind über das Menü Bearbeiten erreichbar. Außerdem kann man sich diese Hilfe anzeigen lassen und die Copyrightmeldung.

6Umbenennen mit Bearbeiten/Umbenennen

Die Kamera vergibt ja einfach laufende Nummern mit einem kameraspeziefischen Prefix. Sinnvoller ist es den Bildern Namen zu geben die folgende Informationen erhalten:

Anfangs habe ich dies mit dem TotalComander gemacht, doch auch wenn er dazu gut geeignet ist war es noch viel Arbeit, also schrieb ich dias_rename, das später Teil des Programms PostDiaDigit wurde. Neben dem eigentlichen Umbenennen müssen auch noch die mehrfachen Dias am Anfang der Schiene ausgeson­dert werden. Das Programm benennt nur um, löscht also nicht, kopiert aber auch nichts. Also gibt es nachher die gleichen Dateien wie vorher, aber sortiert in Unterordner und mit neuen Namen. Es geht davon aus, dass man RAW und JPG Bilder aufgenommen hat. Diese werden in 3 automatisch erzeugte Unterordner verschoben:

Die Endungen jpg und nef können im Hauptfenster eingestellt werden. Dabei ist die primäre Endung die nach der gesucht wird, z.B. die jpg. Nach dem Verschieben des jpg wird geschaut ob es ein gleichnamiges File mit der sekundären Endung gibt, falls ja wird dies entsprechend verschoben/umbenannt. Dies ist wichtig, falls man zwischendurch per Hand eingreift. Hat man z.B. Müll kann man einfach die jpgs lö­schen, oder in den del Ordner verschieben, die gleichnamigen nef bleiben dann am Ende übrig. Nach so einer Aktion muss der Ordner aber neu geladen werden, s.u.

Im weiteren schreibe ich also immer jpg, meine aber die primäre Endung, und nef für die sekundäre.



6.1Verzeichnis wählen/neu laden

Mit dem Button „…“ kann man ein neues Verzeichnis laden, mit dem anderen „“ lädt man das aktuelle Verzeichnis neu, sinnvoll wenn man per Hand etwas gelöscht oder sonst wie geändert hat.

6.2Anzahl Dias

Hinter Rest steht wie viele Bilder noch vorhanden sind, also nur die jpg!

Danach kann man Auswählen wie viele Bilder in der Schiene sind. Einige Standardgrößen kann man ein­fach auswählen, für alles andere gibt es das „?“ und dahinter eine Eingabemöglichkeit. Ein Sonderfall ist die „1“ hier wird das erste Bild umbenannt und sonst nichts, also nichts gelöscht o.ä. Es werden natürlich höchstens so viele Bilder umbenannt wie noch vorhanden sind. Man muss also bei der letzten Schiene ei­ner Serie nicht die Anzahl verringern. Aber wenn zwischendurch eine Schiene unvollständig ist wohl.

6.3Maske

Der Filename wird aus den folgenden Teilen zusammengesetzt:

6.4Löschen

Wie gesagt es wird nur in den del Ordner verschoben, nicht wirklich gelöscht. Nötig ist dies da es bei der von mir verwendeten Kamera am Anfang einer Schiene Synchronisationsprobleme gab. Voreingestellt ist ent­sprechend das die Bilder 2 bis 5 gelöscht werden. Der Grund, dass ich nicht 1 bis 4 lösche ist ganz ein­fach. Das Dia wird warm, kann sich dann eventuell verformen („Springen“) also benutze ich das kälteste. Hat man Serien ohne Dubletten aufgenommen trägt man als ersten Wert 0 ein, dann wird nichts gelöscht. Danach wird angezeigt welche Bilder gelöscht werden, also die Originalfilenamen.

6.5Umbenennen

Hier werden die Originalnamen des ersten und letzten Bildes angezeigt die umbenannt werden sollen.

6.6Prüfen und los

Ich empfehle das Verzeichnis in einem Explorer Fenster geöffnet zu haben, dann kann man leicht über­prüfen ob das alles stimmen kann. Um nicht jpg und nef hintereinander zu sehen am besten „Gruppieren nach Typ“ auswählen, dann wird es übersichtlicher. Ein Vorteil der Dubletten ist z.B. dass man einfach den Anfang einer Schiene erkennt. Man schaut also ab die ersten 5 Bilder gleich sind und ob nach dem letzten Bild (laut Umbenennen Box) wieder 5 gleiche kommen. Ist das alles OK klickt man auf „Go!“. Da nur umbenannt wird geht dies recht zügig. Das Programm versucht jetzt zu raten was man als nächstes machen will. Hat man eine Schiene umbenannt kommt wahrscheinlich die nächste, also erhöht es die Schienennummer, und setzt die Startnummer auf 1. Hat man nur ein Bild umbenannt wird die Startnum­mer um eins erhöht. Im Idealfall kann man also einfach immer wieder auf Go klicken bis das Verzeichnis abgearbeitet ist. Falls in der Serie Bilder verschiedener Reisen waren könnte man auf die Idee kommen diese jetzt zu trennen, das sollte man aber erst nach dem Schneiden.



6.7Einstellungen sichern

Hier werden die Einstellungen die für den jeweiligen Nutzer spezifisch sind in der Registry gesichert. Dies sind: die beiden Filetypen (z.B. jpg und nef), welche Bilder gelöscht werden sollen (z.B. 2-5) und die Anzahl Bilder pro Schiene. Diese Einstellungen werden beim Programmstart automatisch geladen.

7Schneiden

7.1Grundsätzliches

Man hat jetzt viele Bilder, die viel Schwarz und ggf Reflexionen am Tubus des Projektors enthalten und in der Mitte das Bild, entweder Hoch- oder Breitkant, außerdem sind sie auf dem Kopf und seitenver­kehrt. Die Fotos müssen also zurecht geschnitten und gespiegelt werden, dabei muss erkannt werden ob sie Hoch- oder Breitkant sind. Das alles möglichst automatisch, möglichst sicher, also so, dass nichts wegge­schnitten wird und das ganze möglichst schnell. Es gibt zwei Möglichkeiten dies anzugehen:

Ich habe mich für letzteres entschieden. I.W. überlager ich zuerst viele Bilder, meist 100, dann erhält man ein helles Kreuz auf schwarzem Grund. Hieraus kann das Programm dann die Schnittmasken bestimmen. Diese werden nicht zu 100% für alle Bilder passen, da nicht alle Bilder genau gleich fotografiert worden. Gründe sind:

Es wird aber eher etwas Schwarzer Rand übrigbleiben als etwas weggeschnitten. Will man die Bilder spä­ter z.B. Am TV oder PC ansehen hat man meist einen schwarzen Hintergrund, dann fällt dieser Fehler nicht auf, das Bild ist nur minimal kleiner angezeigt als es sein könnte. Erfahrungsgemäß reichen 100 Bil­der um eine möglichst gute Maske zu berechnen, bei meinen 28000 Dias musste ich bei einer Serie die Zahl erhöhen. Je höher, je sicherer aber natürlich auch langsamer.

7.2Schneiden mit Bearbeiten/Schneiden

Mit dem Button „Einstellungen“ kann man einige Einstellungen vornehmen. Dies sollte man zuerst ein­mal ignorieren und versuchen ob es mit den Voreinstellungen funktioniert. Falls nicht hier die möglichen Einstellungen:

Variable

Bedeutung

Sinnvolle Werte

Anzahl Bilder für Schnittmaske

Das Berechnen der Schnittmaske ist recht aufwändig, aber benutzt man zu wenige wird die Maske schlecht.

Ich habe 100 benutzt, dies reichte nur einmal nicht.

Kleine Winkel ignorieren

Bei der Bestimmung der Schnittmaske wird auch er­kannt, ob Kamera und Projektor gegeneinander verdreht waren. Dies kann das Programm korrigieren, besser ist natürlich den Fehler mechanisch korrigieren. Bei klei­nen Fehlern lohnt sich die Korrektur nicht, deshalb kann man hier eine Schwelle eintragen.

Ich habe 1 Grad verwendet.

Umrisslänge

Bei der Suche nach dem „Kreuz“ wird natürlich auch andere Flecken gefunden. Diese sind aber normalerwei­se deutlich kleiner als das Kreuz. Das wichtigste Kriteri­um ist deshalb die Länge. Trägt man einen negativen Wert ein wird die Bildbreite verwendet.

Wenn das Kreuz fast das gan­ze Bild ausfüllt ist die Vor­einstellung -1 ok. Sonst schauen wie breit so ein Kreuz ist und den Wert mit 4 multiplizieren und etwas abrunden.


Mit dem Button „Speichern“ werden die obigen Einstellungen in der Registry gesichert. Diese Einstellun­gen werden beim Programmstart automatisch geladen.

Das Programm schneidet alle Bilder des primären Typs in einem Verzeichnis, das man mit dem „Ver­zeichnis wählen“ Button auswählen kann. Daraufhin werden alle Bilder mit dieser Endung in dem Ordner verarbeitet. Im optimalen Fall findet man einiges später alle Bilder geschnitten im gleichnamigem Ordner. Fast immer landen aber auch einige im Ordner „portrait“. Die Logik dabei ist folgende:

Jetzt ist also natürliche Intelligenz gefragt. Man schaut sich die Bilder in „portrait“ an und macht damit fol­gendes:

Dann verschiebt man alle übriggebliebenen Bilder aus „portrait“ in „geschnitten“, dadurch ersetzen alle nicht automatisch als solche erkannten Hochkantbilder die falschen Breitkantversionen. Damit hat man jetzt alle richtig geschnittenen zusammen, zusätzlich die schwarzen. Sind es Lücken löscht man sie, sonst eben nochmal fotografieren. Wenn bis zu einem bestimmten Punkt wenig Bilder in „portrait“ sind, ab da aber fast alle kann es sein, dass man da irgendwie den Projektor oder die Kamera bewegt hat. Dann bleibt nur die Bilder in zwei Serien zu teilen und beide getrennt zu schneiden.

7.3Problemlösung mit den Kreuzen

In seltenen Fällen meldet das Programm, dass es die Schnittmaske für schlecht hält. Dann sollte man sich zuerst mal die erzeugten Bilder mit Namen Kreuz… ansehen. Davon gibt es 3:













Kreuz_Grau Kreuz_M2




Ausschnitt aus Kreuz_u2.bmp (Ecke oben rechts)



Je nachdem was man da sieht hat man zwei Möglichkeiten, entweder man erhöht die Anzahl Bilder aus denen die Maske gebildet wird, und versucht es erneut, oder man passt die Datei cut.csv per Hand an und startet den Prozess bei Schritt 2, dem eigentlichen Schneiden über den Button „cut.csv“ wählen. Hat man die Koordinaten aus den Kreuzen mit einer 2 am Ende muss man sie halbieren!

Steht bei Drehwinkel irgendwas >1 Grad sollte man die Ausrichtung Kamera/Projektor überprüfen. Das Programm dreht die Bilder dann zwar, aber dies dauert und verbessert die Qualität nicht.

7.4Und weiter

Jetzt ist der Zeitpunkt die Bilder so zu sortieren wie man es haben will. Da alle Bilder mit der gleichen Belichtung gemacht wurden, muss da noch nachgebessert werden. Dazu habe ich den Batch Modus von Ir­fanview verwendet (Auto-Korrektur). Dies ist auch der Grund, dass das Schneideprogramm keine jpg sondern png Dateien erzeugt, jpg ist ja verlustbehaftet, und das sollte man nicht in einer Bearbeitungsket­te mehrmals haben. Dies würde natürlich auch dafür sprechen am Anfang nicht die jpgs der Kamera son­dern die Raw-Bilder zu verwenden. Das wäre aber kompliziert und ich war mit dem Ergebnis zufrieden. Kompliziert, weit die verwendeten QT Bibliotheken kein nef lesen können. Eine Möglichkeit wäre mit ei­nem RAW-Konverter die Bilder in ein unterstütztes verlustfreies Format wie eben png zu wandeln. Der Hauptgrund überhaupt die Raw Bilder zu speichern und umzubenennen ist, das man evtl einige wenige Bilder in besserer Qualität weiterverarbeiten will, also nicht nur für die Diashow.


8Dubletten

Wie beschrieben kann es durch Synchronisationsproblemen zu Dubletten kommen, also zwei Aufnahmen des gleichen Dias. Diese zu finden ist vor allem wichtig, da normalerweise zu jeder Dublette ein anderes Dia fehlt. Dieses Problem hatte ich erst recht spät bemerkt. Da ich keine Lust hatte die 28000 Dias durch­zusehen habe ich schnell ein Programm geschrieben, dass eine Vorauswahl trifft. Schnell bedeutet, es ist schnell geschrieben aber nicht sehr optimiert. Für ein optimaleres Programm hätte ich sicher Stunden Pro­grammierzeit gebraucht aber nur deutlich weniger als eine Stunde Zeit bei der Nutzung gespart. Ziel war es eine möglichst kleine Zahl an verdächtigen Bildern dem User zu zeigen die aber möglichst alle Dublet­ten enthalten. Also eher tolerant und schnell beim Vergleich sein. Verglichen wird immer ein Bild mit dem nächsten. Dabei ist ein zweistufiges Verfahren raus gekommen:

  1. fast gleiche Bilder sollten als jpg fast die gleiche Größe haben. Sind es weniger als 2% sind sie verdächtig. Dieser Vergleich geht sehr schnell, da die Bilder dafür nicht geladen werden müssen

  2. Jetzt müssen sie geladen werden. Da 2 Fotos des gleichen Dias nie genau gleich sind verbietet es sich sie einfach pixelweise zu vergleichen, zumindest nicht in ihrer Originalauflösung. Ich redu­ziere sie auf 3*3 Pixel und vergleiche dann deren Farbwerte.




8.1Dubletten finden mit: Bearbeiten/Dubletten

Mit dem „…“ Button kann man ein Verzeichnis auswählen. Dann startet das Programm. Es durchsucht alle Unterordner nach Bildern des primären Typs, außer Ordner mit dem Namen Doku (die sind für die Rahmen reserviert). Statt beide Schritte durchlaufen zu lassen, was doch einiges dauern würde, wird nach Schritt 1 bereits das erste verdächtige Bildpaar angezeigt. Sind sie gleich merkt man sich den Pfad. Wäh­rend dessen wird im Hintergrund Schritt 2 auf die nächsten Bilder angewendet. Dann klickt man auf „> > >“ um das nächste Bilderpaar zu sehen. Dies kann etwas dauern. Unter den Bildern wird die Anzahl der restlichen Verdächtigen angezeigt. Aber keinen Schock bekommen, dies sind alle die nach Schritt 1 ver­dächtig sind. Klickt man auf den „> > >“ Button reduziert sich diese Zahl also meist um mehr als 1. Au­ßerdem wird der Pfad angezeigt. Nach Schritt 1 sind einige Prozent verdächtig, nach Schritt 2 wenige Promille. Also auch bei meiner Menge an Dias war ich recht schnell durch. Ich habe so 10 Dubletten ge­funden. Es ist also kein wirklich großes Problem.

9Diarahmen

So jetzt haben wir also die Dias als Digitalbilder vorliegen, aber da fehlt noch etwas. Viele werden wie ich ihre Dias beschriftet haben. Was macht man jetzt damit? Grundsätzlich gibt es mindestens drei Mög­ lichkeiten, abtippen, -scan­nen oder -fotografieren. Leider haben alle drei einen gravierenden Nachteil, man muss doch jedes Dia ein­zeln in die Hand nehmen, etwas das ich ja eigentlich verhindern wollte. Mei­ne Methode war, die Dias auf ein Diasortierpult legen und abfotografieren. Bei Nor­malmagazinen geht dies recht schnell, bei LKM oder CS-Magazinen ist es leider recht viel Fummelei. Aber immerhin etwas, dass man z.B. beim TV-sehen o.ä. machen kann. Mein Pult hat Platz für 40 Dias. Man erhält also zu­nächst ein Bild wie das hier. Außer den Dias ist oben rechts noch der Aufkleber des Kas­tens zu sehen und ein Zettel mit „1-40“ Es sind also die ersten 40 Dias der Schiene U1. Und dann sind da noch die drei roten und der grüne Punkt. Statt dieses einen Bildes wollte ich 41 haben, also 40 Bilder mit je einem Rahmen und eines mit dem Aufkle­ber. Man kann natürlich ähnlich wie mit Diaprojektor und Kamera eine statische Anordnung von Pult und Kamera herstellen, Also die Kamera irgendwie mit einem Stativ über dem Pult positionieren, aber das war mir zu kompliziert. Also habe ich mir gedacht ich fotografiere es einfach aus der Hand, mit meinem Han­dy und versuche dann die Position des Pultes zu ermitteln. Hat man die 4 Ecken des Pultes ist es einfach aus dem einen Bild die 41 zu schneiden. Um die Ecken zu fin­den dienen die 4 farbigen Punkte. Wenn ich gewusst hätte, wie kompliziert es ist diese eindeutig zu erken­nen, auch wenn die Lichtsituation mal an­ders ist, Ein Dia mit viel Rot da liegt o.ä. hätte ich wahrschein­lich die Stativlösung gewählt, aber da hatte ich schon fast alle Rahmen fotografiert. Ich glaube nicht, dass das Programm in einem Zustand ist für die Allgemeinheit geeignet zu sein. Es funktioniert nur mit meiner Geometrie, mit Punkten dieser Größe und Farbe,… Als Kompromiss habe ich die Routinen in das Programm aufgenommen und die vielen von der speziellen Geometrie abhängigen Konstanten gebündelt. Falls es jemand nutzen will sollte er sich bei mir melden. Dann werde ich mir überlegen wie man das Programm auf die wahrscheinlich andere Geometrie anpasst und diese Anleitung erweitern.

Sinnvoller als die farbigen Punkte wären evtl QR-Codes, wenn man denn eine Bibliothek findet, die die Position dieser in einem Bild findet.

Außerdem habe ich ein Programm, dass ein html erzeugt in dem man durch Eingabe der Zeit sich den passenden Rahmen anzeigen lassen kann, zusätzlich zu Infos die man als Text eingegeben hat. Vorausge­setzt natürlich, dass man eine Diashow hat bei der jedes Bild gleich lang angezeigt wird. Bei mir hat jede Show einen Vorspann von 16 und jedes Bild wird 7s angezeigt. Bin ich also bei 1:30 bin ich bei Bild (90s-16s)/7 =11 (aufgerundet). Also wird der 11. Rahmen angezeigt… Aber auch da wäre noch einiges an Arbeit nötig um es für normale User anzupassen. Dies würde ich nur machen wenn entsprechendes Inter­esse da ist.

10Erfahrungsberichte

Das Programm PostDiaDigit habe ich erst aus den einzelnen Programmen zusammengebaut nachdem ich schon fertig war, es also nie, außer zu Testzwecken, verwendet. Inzwischen benutzt ein Freund den Auf­bau, aber mit dem gleichen Projektor und der gleichen Kamera (es ist seine ;-) ). Das Programm entstand also um mit dieser Konstellation zu funktionieren. Natürlich habe ich wenn immer möglich versucht es variabel zu halten. Ob dies reicht wird sich erst zeigen wenn andere es mit anderer Hardware nutzen. Ich wäre also dankbar für weitere Berichte unter Verwendung anderer Hardware und dafür nötiger Anpassung. Bei vertretbarem Aufwand bin ich gerne bereit auch Anpassungen auszuführen. Mögliche Probleme wären z.B. wenn deutlich mehr (oder weniger) Hochkant oder Breitkant Bilder enthalten sind, oder gar nur eines von beiden.

11Rechtliches und Quellcode:

11.1Lizenz

Dieses Programm steht unter der GPL V3 Lizenz.

Eine Kopie liegt dem Programm bei.

11.2Quellcode

Der Quellcode sollte dort vorhanden sein wo auch das Programm verfügbar ist, zumindest aber auf meiner Homepage.

12Änderungen


13Bekannte Probleme und Aussicht

Wie gesagt wird das Programm und die Doku nur weiterentwickelt wenn es entsprechende Rückmeldungen gibt, denn ich habe meine Bilder fertig bearbeitet.

Dimitri Junker