Der "CineFrameCleaner" ist ein Programm, das es ermöglicht, Schmutzflecken, Staubfäden und sonstige Störungen
in den eingescannten Bildern (Frames) eines Schmalfilmes (CineFilm) zu entfernen. Weitere Funktionen des Programmes sind a) die Glättung
der Farben wenn diese Farben durch die Bildschäfung "grieselig" geworden sind
und b) die Erzeugng eines Videoclips mittels FFMPEG.
Die Entfernung der Flecken wird so weit wie möglich durch Automatiken unterstützt. Eine völlig automatische Schmutzentfernung
ist aber nicht möglich, weil es keine eindeutigen Kriterien gibt, die beschreiben, was wirklicher Schmutz ist und was
ein normaler Bildinhalt ist. Hier muss der Mensch mit seiner Entscheidungsfähigkeit eingreifen und festlegen,
was ein Schmutzartefakt ist und was nicht.
Die Schmutzentfernung geschieht dadurch, daß die eingescannten gespeicherten Filmbilder über eine graphische Benutzeroberfläche nacheinander angezeigt werden. In der Benutzeroberfläche erscheint das zu bearbeitende Bild links in einem standardisierten Format (800x600 Pixel im 4:3 Seitenverhältnis - dem üblichen Seitenverhältnis von Schmalfilmen). Rechts vom zu bearbeitenden Bild wird oben das in Betrachtungsreihenfolge vorausgehende Bild in halber Größe angezeigt und darunter das nachfolgende Bild in der Betrachtungsreihenfolge - ebenfalls in halber Größe. Diese Bilder dienen als Vergleichsbilder, um den Schmutz einfach erkennbar zu machen. Ein identifizierter Schmutz wird dann im Hauptbild mit der Maus markiert, um dann mit den entsprechenden Pixeln des Vergleichsbildes entfernt zu werden.
Zurück zum InhaltsverzeichnisDas Programm ist ein unter Windows 10 mit Visual Studio 2020 sowie MS .NET 4.7.2 und Accord .NET 3.8.2
erstelltes Windows C# Forms Programm. Auf dem ausführenden Windows Rechner muss also Microsoft .NET 4.7.2 und Accord .NET 3.8.2
installiert sein. Das Programm wird als gepackte Datei (gepackt mit 7Zip) ausgeliefert.
Die erforderlichen Accord Bibliotheken sind in der Auslieferungsdatei mit enthalten.
Zur Installation des Programmes ist es ausreichend, die Auslieferungsdatei in einen Ordner eigener Wahl auf dem
Zielrechner zu entpacken. Empfehlenswert ist es, den Ordner im Programm Verzeichnis unter dem Namen FrameCleaner anzulegen.
Zur Ausführung wird ein Rechner mit einem Windows 64 Bit Betriebssystem ab Windows 7 oder neuer empfohlen.
Verwendet werden kann aber auch ein Windows 32 Bit Betriebssystem, wenn genügend Hauptspeicher vorhanden ist.
Um die Anwendung wieder von Rechner zu entfernen, reicht es, die Installationsbibliothek zu löschen.
Die Windows Repository wird nicht verwendet.
Wenn das Programm im Installationsordner "C:/Programme/FrameCleaner" abgespeichert wurde, dann erfolgt der Aufruf
entweder über das Fenster der Eingabeaufforderung mittels des Befehles
C:/Programme/FrameCleaner/FrameCleaner.exe
oder über eine auf dem Desktop erstellte Programmverknüpfung (siehe folgende Abbildung) :
Über die Schaltfläche "Anderes Symbol" kann für die Verknüpfung das Besen Symbol für den FrameCleaner [
]
eingesetzt werden. Es befindet sich im Installationsordner als Datei "besen32-32.ico".
Als Parameter für den Programmaufruf können dem Befehl noch zwei Werte mitgegeben werden:
Wenn das CineFrameCleaner Progamm aufgerufen wurde, dann erscheint als erstes der Hauptbildschirm ohne Bilder.
Der Hauptbildschirm zeigt in der Menüleiste die Menüeinträge zur Steuerung des Programmes.
Unterhalb der Menüleiste ist das Nachrichtenfeld angeordnet in dem unter Umständen ein Hinweis auf das letzte Bild erscheint,
das in einer vorausgegangenen Sitzung verarbeitet wroden ist. Darunter befinden sich die Fenster für die zu bearbeitenden Bilder.
Im unteren Teil des Fensters befinden sich die Eingabefelder und Schaltflächen zur Programmsteuerung.
Über den Menüpunkt "Datei -> Ausgewählte Sprache" kann der Dialog zur Änderung der Anzeigesprache aufgerufen werden. Zur Zeit sind die Sprachen Deutsch und Englisch implementiert. Weitere Sprachen können implementiert werden. Nutzer, die in der Lage sind, die Texte in eine der vorgesehen Sprachen zu übersetzen, können sich gerne bei mir melden. Die Support E-Mailadresse findet sich auf meiner Homepage.
Zur Auswahl der gewünschten Sprache bitte die der Sprache zugeordnete CheckBox selektieren und die Schaltfläche "zurück" anklicken. Dadurch werden alle Bezeichner in der Programmanzeige auf die selektierte Sprache abgeändert angezeigt.
Über den Menüpunkt "Datei -> INI Datei Inhalt" wird die Nachrichtenbox zur Anzeige der aktuell gültigen Parameterwerte aufgerufen. Über die Schaltfläche "OK" in der Nachrichtenbox wird die Anzeige beendet.
Über den Menüpunkt "Datei -> Ermittle Bildordner" wird der System-Standarddialog zur Auswahl der Basisbibliothek aufgerufen.
In der Basisbibliothek sollten sich alle Projektordner der Schmalfilm-Digitalisierungsprojekte befinden. In den Projektbibliotheken
sollte sich weiterhin jeweils als Unterbibliothek der Ordner "Frames" mit den eingescannten Filmbildern (den Frames) befinden.
Der Name des Projekt Basisordners kann auch schon im Befehl des Programmaufrufs vorgegeben worden sein.
Über den Menüpunkt "Datei -> Startdatei setzen" wird der System Standarddialog für eine Dateiauswahl angezeigt.
Eventuell muss zur Bilderbibliothek durchnavigiert werden. Ist die aktuelle Bilderbibliothek gewählt, so muss unter den Bildern,
die in dieser Bilderbibliothek abgespeichert sind, das Startbild ausgewählt werden, mit dem die Bildreinigung beginnen soll.
Hinweis: Wenn eine Bildfarbenglättung vorgenommen wurde, dann findet man hier auch den Ordner (hier "2B") mit den "geglätteten" Bildern.
In der rechten oberen Ecke des Dialogbildschirmes befindet sich ein kleines Bildfenster
Icon [ ]. Wenn man
dieses Icon anklickt, dann öffnet sich die Auswahl für die möglichen Listananzeigeformen. Günstig ist es,
wenn man "Große Symbole" auswählt. Das ergibt die Art der obigen Anzeige, die die Auswahl des gewünschten Bildes erleichtert.
Ist das gewünschte Bild selektiert, dann wird über die Schaltfläche "Öffnen" das Bild zusammen mit den zwei das Bild unmittelbar umgebenden Bildern eingelesen und im FrameCleaner Dialog angezeigt (siehe weiter unten).
Zurück zum InhaltsverzeichnisÜber den Menüpunkt "Datei -> Letzte Sitzung fortsetzen" wird der aktuelle Inhalt der INI Datei ausgelesen und die eingelesenen Parameter werden zur Initialisierung der Felder des Reinigungdialoges verwendet. In der INI Datei ist auch das letzte in einem vorausgegangenen Reinigungsdialog verarbeitete Bild abgespeichert. Das Folgebild dieses Bildes wird als Startbild verwendet und der Dialog unter Anzeige des Filmbilder wieder aufgenommen (siehe das folgende Bild).
Über den Menüpunkt "Datei -> Ende" wird der laufende Reinigungsprozess beendet. Alle aktuellen Prozessparameter werden in der INI Datei gesichert, alle eventeull offenen Fenster werden geschlossen und dann das Programm beendet.
Durch anklicken der "AVS Datei erzeugen" Menüzeile wird eine Pseudo-Videodatei im Projekt VIDEO Ordner erzeugt die die Parameter enthält, die zur Erzeugung eines Videos mit VirtuaDub und AviSynth benötigt werden.
Beispiel: "ImageSource("E:\FilmProjekte\IT73\FRAMES\0\IT730%06d.JPG", start = 0, end = 1042, fps = 18, use_DevIL = false)"
Die Parameter sind: das URL Skelett: "ImageSource("E:\FilmProjekte\IT73\FRAMES\0\IT730%06d.JPG",
die Bildnummer des Anfangsbildes (start = 0) und die Bildnummer des Endbildes (end = 1042)
sowie die Anzahl Bilder pro Sekunde im erzeugten Video (fps = 18) und the ein Steuerungsparameter (use_DevIL = false).
Durch anklicken der "FFMPEG Video Erzeugung" Menüzeile wird der Dialog zur Erstellung des Videoclips mit FFMPEG geöffnet.
Siehe Der FFMPEG Video Erstellungsdialog
Durch anklicken der "Bildfarben glätten" Menüzeile wird der Dialog zur Glättung "grieseliger" Bildfarben
geöffnet.
Siehe Der "Bildfarben glätten" Dialog
Durch anklicken der "Bildpräsentationsprogramm auswählen" Menüzeile wird der System Datei Suchdialog geöffnet, mit dem man ein installiertes Bildpräsentationsprogramm (dessen EXE Datei) festlegen kann. Ich empfehle, das Bildbearbeitungsprogramm IrfanView ( 32 bit oder 64 Bit) zu wählen. Siehe: IrfanView .
Über den Menüpunkt "Hilfe -> Über Frame Cleaner" wird das Informationsfenster für das Programm angezeigt. Mittels der Schaltfläche "zurück" wird das Fenster wieder geschlossen.
Über den Menüpunkt "Hilfe -> Auf neue Version prüfen" wird in der Nachrichtenzeile angezeigt, ob die aktuellste Programmversion installiert ist oder ob im Internet eine neuere Version verfügbar ist.
Über den Menüpunkt "Hilfe -> Hilfe Dokument" wird das Hilfedokument für die Anwendung angezeigt. Das Fenster wird über das "X" Icon in der rechten oberen Fensterecke geschlossen.
Am unteren Rand der Bedieneroberfläche befinden sich 8 Schaltflächen zur Steuerung des Programmablaufes. Dies sind:
Am unteren Rand der Bedieneroberfläche befinden sich eine Reihe von Parameter-Eingabefelder zur Steuerung des Programmablaufes. Dies sind:
Die Vorgehensweise bei der Reinigung eines Satzes von erfassten und in einer Bilderbibliothek gespeicherten Schmalfilmeinzelbilder ist wie folgt:
Nach dem Aufruf des FrameCleaner Programmes wird zuerst das erste zu reinigende Bild in der Bilderbibliothek ausgewählt.
Das geschieht entweder über den entsprechend Menüpunkt im "Datei" Menü oder die Schaltfläche im Hauptfenster
(siehe Startdatei setzen bzw. Schaltflächen).
Ist der Programmaufruf die Fortsetzung eines früher unterbrochenen Reinigungsprozesses, dann sollte der Menüpunkt
Datei -> Letzte Sitzung fortsetzen verwendet werden.
In beiden Fällen wird im Programmfenster das nächste zur Reinigung anstehende Bild mit seinen umgebenden Bildern
angezeigt. Im angezeigten Hauptbild ist (ungefähr in der Bildmitte) ein gelbes Rechteck angezeigt.
Im als Vergleichsbild festgelegten Bild wird sowohl die originale Position des Vergleichsrechtecks (gelb) als auch
die korrigierte Position des Vergleichsrechteckes (grün) angezeigt. Damit kann überprüft werden, ob die Korrektur sinnvoll
ist oder ob eine neue Vergleichsrechtecksposition festgelegt werden sollte.
Das angezeigte Bild muss jetzt visuell überprüft werden, ob zum Einen das grüne Rechteck in Vergleichsbild ungefähr den
gleichen Bildbereich anzeigt wie das gelbe Rechteck im zu korrigiereden Bild oder nicht.
Weichen die Bereiche sichtbar voneiander ab, dann sind die Bilder in der Regel nicht ähnlich genug und es sollte entweder
keine Bildreinigung vorgenommen werden, eine neue Vergleichsrechteckpostion gewählt werden.
Hinweis: Normalerweise sind aufeinanderfolgende Bilder relativ änlich. Man kann also meist die Ersetzungsfarbe zur Bildkorrektur
aus dem zuvor korrigierten Bild entnehmen. Wenn jedoch Szenenwechsel im Film auftreten, dann ist in aller Regel keine Älichkeit gegeben.
Scenenwechsel versucht das Programm automatisch festzustellen. Ist ein Szenenwechsel erkannt, dann wird die Entnahme der Korrekturfarbe
auf das Folgebild umgestellt. Das funktioniert aber (abhäig von den Bildern am Szenenwechsel nicht immer. Manchmal muss man daher
den Szenenwechsel dadurch erzwingen, indem man auf das kleine Rechteck unterhalb der Ziel-Bildtyp Definition klickt. Dadurch wird auf das
alternative Kerrekturfarben-Entnahmebild umgeschaltet.
Weiter muss überprüft werden, ob im Hauptbild Schmutzflecken, Staubfäden oder andere Bildstörungen
sichtbar sind.
Ist dies nicht der Fall, dann kann das nächste Bild (Schaltflächen b_voriges Bild oder f_folgendes Bild)
aufgerufen werden, um die Reinigung mit dem nächsten Bild fortzusetzen. Das aktuelle Bild wird in diesem Fall nicht verändert!
Sind im Bild jedoch Bildstörungen sichtbar, dann müssen diese Bildstörungen markiert werden. Das geschieht mit der linken
Maustaste. Dazu wird der Mauszeiger links über dem gestörten Bereich positioniert und die linke Maustaste wird gedrückt
und festgehalten. Dann wird der Mauszeiger rechts unterhalb des gestörten Bereiches positioniert und dann wird die linke
Maustaste losgelassen. Es erscheint ein rotes Rechteck um den gestörten Bereich. Die Koordinaten des letzten roten Rechtecks
werden in den Feldern "sel Rechteck" angezeigt.
Sind weitere Flecken im Bild enthalten, dann kann der Selektionsprozess im Prinzip unbegrenzt wiederholt werden. Alle selektierten
Bereiche im Bild werden durch rote Rechtecke angezeigt.
Sind alle zu reinigenden Bereiche identifiziert und markiert, dann wird die Reinigung des aktuellen Bildes dadurch
ausgelöst indem man die Schaltfläche "nächstes Bild" (f_folgendes bzw. b_voriges Bild) anklickt. Anstelle der
Schaltflächen kann auch der entsprechende Buchstabe auf der Tastatur angeklicket werden.
Das Bild wird gereinigt und als Folgebild angezeigt. Gleichzeitig wird das neue Bildertripel gelesen un angezeigt
und rechts unten im Bildschirm wird in grün die Anzahl der ersetzten Bildpunkte und der Älichkeitsfaktur angezeigt.
Dieser Faktor sollte etwa zwischen 0.92 und 0.97 liegen. Kleinere Werte signalisieren eine unzureichende Änlichkeit. Liegt der Wert
am unteren Grenzwert, so wird ein Szenenwechsel angenommen.
Alternativ zur Markierung der einzelnen Bildbereiche kann bei sehr starker Verschmutzung auch das ganze Bild auf einmal durch das vorausgegangene Bild oder das nachfolgende Bild ersetzt werden. Allerdings sollte in diesem Fall darauf geachtet werden, dass keine gegenläufigen Bewegungen in den Bildern vorkommen, ansonsten fällt beim Abspielen des erzeugten Videos die gereinigte Bildstelle durch merkbares Zucken im Bild stark auf.
Wenn eine Bildkorrektur ein unzureichendes Ergebnis geliefert hat, dann kann eine Bildkorrektur auch durch anklicken der Schaltfläche "aufheb" (aufheben) rückgängig gemacht werden.
Sobald alle Bilder eine Schmalfilmes gereinigt sind, kann man mit der Generierung des endgültigen Videos starten.
Für diesen Prozess können die folgenden Programme empfohlen werden:
FFMPEG ist eine extrem mächtiges Befehlszeilenwerkzeug ohne graphische Benutzeroberfläche mit einer sehr sehr großen Anzahl von Funktionen, die für die Videoerzeugung eingesetzt werden können. Aus diesem Grund stellt CineFrameCleaner eine graphische Benutzeroberfläche (GUI) in einem Dialog bereit, der den Benutzer bei der Erstellung von qualitativ hochwertigen Videoclips unterstützt. Diese GUI ist besonders auf die Erfordernisse von CineFrameCatcher und CineFrameCleaner ausgelegt.
Der FFMPEG Video Erstellungsdialog unterstützt die Erzeugung von qualitatv hochwertigen Vidoeclips aus den (gereinigeten) Bildern eine Schmalfilems, die in einer Bildunterbibliothek gespeichert sind. Der Dialog wird in Hauptprogrammfenster über das "Functionen" Menü aufgerufen. Der Dialog übernimmt die wichtigen Werte aus dem gerade aktiven Reinigungsprozess - Das ist der Pfad zur Bildunterbibilothek und der Pfad zu Videobibliothek, in der die Vidoeclips abgelegt werden sollen. Beide Werte können über den System Ordner Suchdialog angepasst werden.
Mit dem Bildfarben-Glättungsdialog kann man für ein Einzelbild oder einen Bildbereich in einem Bilderordner Farbfelder etwas glätten, die aufgrund eines durchgeführten Bildschärfungsprozesses "grieselig" erscheinen.
Drei Glättungsstufen sind verfügbar.
Die farblich geglätteten Bilder werden in einem zusätzlich Unterordner mit dem Zusatz "B" für "blured" abgelegt. Die originalen Bilder bleiben dadurch erhalten. So kann man dann in einem weiteren Arbeitsschritt bestimmte Bilder im Originalbilderordner durch farblich geglättete Bilder ersetzen.
Mit Hilfe der Schaltfläche "Bilder betrachten" kann das Resultat einer Glättung beurteilt werden. Dazu muss aber vorher das Bildbetrachtungsprogramm ausgewählt worden sein. Siehe: Bildpräsentationsprogramm auswählen;
Mit dem Dialog Schwarzweiss Negativbilder in Positivbilder umwandeln kann Nagativ-Schwarzweissbilder in Positiv-Schwarzweissbilder konvertieren
(negative Farbbilder sind zur Zeit noch nicht unterstützt).
Die konvertierten Bilder werden in einem zusätzlich Unterordner mit dem Zusatz "C" für "converted" abgelegt. Die originalen Bilder bleiben dadurch erhalten. So kann man dann in einem weiteren Arbeitsschritt bestimmte Bilder im Originalbilderordner durch konvertierte Bilder ersetzen.
Mit Hilfe der Schaltfläche "Bilder betrachten" kann das Resultat einer Umwandlung beurteilt werden. Dazu muss aber vorher das Bildbetrachtungsprogramm ausgewählt worden sein. Siehe: Bildpräsentationsprogramm auswählen;