Dias Scannen unter OpenSuse mit dem Canon CanoScan 2700F

Da ich ein paar hundert Dias aus vordigitalen Zeiten besitze, habe ich schon immer mit dem Digitalisieren dieser „Schätze“ geliebäugelt. Einen Teil habe ich vor einigen Jahren von einem Digitalisierdienst auf CD bringen lassen. Die Qualität war recht gut, der Service allerdings ziemlich teuer (ca. 15 Cent pro Bild). Um alle Bilder zu digitalisieren, hätte ich entweder ziemlich viel Geld für den Scandienst ausgeben müssen oder aber selbst scannen.

Um Dias selbst zu scannen, braucht man a) Zeit und b) auch Geld, denn ein halbwegs brauchbarer Diascanner ist nicht billig (sicher >200 Euro). Nach der ausführlichen Konsultation von www.filmscanner.info kam ich erstmal zu dem Schluss, dass mir alle akzeptablen Scanner zu teuer waren. Insbesondere neuere Scanner die das Bild zweimal abtasten (das zweite Mal mit Infrarot, und dann mit der Information aus dem IR-Bild Flecken und Haare entfernen), sind sehr teuer.

Ein Versuch mit dem Abfotografieren im Makro-Modus mit einer normalen Digitalkamera brachte nur sehr schlechte Ergebnisse, hier ein Beispiel:


Ein Versuch, ein Dia direkt mit einer Digitalkamera in ca. 6cm Abstand zu fotografieren. Leider sehr verschwommen und in den Details viel zu grob.

Ich habe dann schließlich einen gebrauchten Canon CanoScan 2700F erstanden. Der Scanner ist von 1999, also schon ziemlich alt. Für die damaligen Verhältnisse war der 2700F ein guter Scanner mit hoher Auflösung von 2720 DPI. Er kann Dias, Negative und Filmstreifen scannen. Der Nachteil des Scanners ist, dass er via SCSI-Interface angeschlossen wird. Diese Anschlussnorm findet man in heutigen PCs kaum noch. Man benötigt einen SCSI-Controller. Meinem Scanner lag ein SCSI-Controller für einen ISA-Steckplatz bei (Adaptec AVA-1502AP). Ich habe keinen Rechner mehr, der so alt ist, dass er einen ISA-Slot hätte. Ich konnte aber bei ebay einen SCSI-Controller ersteigern, der in einen PCI-Slot passt. SCSI-Controller sind mangels Nachfrage bei ebay für etwa einen Euro erhältlich. Mein ersteigerter Controller ist ein Adaptec AVA-2904.


Der CanoScan 2700F. Auf dem Gerät liegt der  Halter für Negativstreifen.

Installation

Da SCSI ein uraltes Bus-System ist, wird es von Linux seit Jahren perfekt unterstützt. Nach Einsetzen des Controllers in einen freien PCI-Slot und Booten findet man, wenn der Controller erkannt wird, mittels „dmsg|more“ in etwa folgende Ausgabe (nur interessante Teile dargestellt):

scsi 0:0:0:0: Attached scsi generic sg0 type 5
sd 2:0:0:0: Attached scsi generic sg1 type 0
sd 3:0:0:0: Attached scsi generic sg2 type 0
ACPI: PCI Interrupt 0000:05:01.0[A] -> GSI 19 (level, low) -> IRQ 19
ahc_pci:5:1:0: Host Adapter Bios disabled.  Using default SCSI device parameters

scsi10 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 7.0
        <Adaptec 2902/04/10/15/20C/30C SCSI adapter>
        aic7850: Single Channel A, SCSI Id=7, 3/253 SCBs

scsi 10:0:2:0: Scanner           CANON    IX-27015C        1.17 PQ: 0 ANSI: 2
target10:0:2: Beginning Domain Validation
target10:0:2: FAST-10 SCSI 10.0 MB/s ST (100 ns, offset 15)
target10:0:2: Domain Validation skipping write tests
target10:0:2: Ending Domain Validation
scsi 10:0:2:0: Attached scsi generic sg3 type 6

Mit „cat /proc/scsi/aic7xxx/10“ gibts noch etwas mehr Info:

Adaptec AIC7xxx driver version: 7.0
Adaptec 2902/04/10/15/20C/30C SCSI adapter
aic7850: Single Channel A, SCSI Id=7, 3/253 SCBs
Allocated SCBs: 4, SG List Length: 128
No Serial EEPROM
Target 0 Negotiation Settings
        User: 80.000MB/s transfers (80.000MHz, offset 127)
Target 1 Negotiation Settings
        User: 80.000MB/s transfers (80.000MHz, offset 127)
Target 2 Negotiation Settings
        User: 80.000MB/s transfers (80.000MHz, offset 127)
Target 3 Negotiation Settings
        User: 80.000MB/s transfers (80.000MHz, offset 127)
Target 4 Negotiation Settings
        User: 80.000MB/s transfers (80.000MHz, offset 127)
Target 5 Negotiation Settings
        User: 80.000MB/s transfers (80.000MHz, offset 127)
Target 6 Negotiation Settings
        User: 80.000MB/s transfers (80.000MHz, offset 127)
Target 7 Negotiation Settings
        User: 80.000MB/s transfers (80.000MHz, offset 127)

80 MBit/s entspricht den 10 MByte/s, die der Controller an Übertragungsgeschwindigkeit bringt. Mittels lsmod kann man schauen, ob die notwendigen Kernel-Module geladen wurden:

% lsmod

scsi_mod              195032  6 sr_mod,aic7xxx,scsi_transport_spi,sg,sd_mod,libata

Sieht also hardwaremäßig gut aus.

Konfiguration

Nun noch die benötigten Tools installieren: Scanner-Support unter Linux erledigt das sane-Paket. Es müssen die sane Backends und Sane Frontends installiert werden. Ich habe noch das schöne graphische Frontend xsane installiert.  Unter OpenSuse Leap 42 ist übrigens schon alles installiert, hier ist nichts nachzuinstallieren.

Jetzt müssen noch die Konfigurationsdateien von sane editiert werden (/etc/sane.d/dll.conf, /etc/sane.d/canon.conf). In der dll.conf sind alle Scanner auszukommentieren, nur die Zeile „#canon“ wird in „canon“ umgewandelt. Die canon.conf sieht bei mir so aus:

# canon.conf
#
# Activate exactly one of the following choices:
#
# Probe on all /dev/sg* devices:
scsi
#
# Probe for „CANON“ on all /dev/sg* devices:
#scsi CANON
#
# Probe only on one fixed device:
#/dev/sg0

mit „scanimage -L“ kann man sich nun die von sane nutzbaren Scanner anzeigen lassen. Bei mir kam erst nach einem Reboot die richtige Ausgabe:

dennis@socraggio:/etc/sane.d> scanimage -L
device `canon:/dev/sg3′ is a CANON IX-27015C        film scanner

Achtung: Bei SCSI muss der Scanner schon eingeschaltet sein, wenn der Rechner eingeschaltet wird. Wird der Scanner später eingeschaltet, wird er nicht gefunden!

Der Anschluss des CanoScan 2700F an einen neueren SCSI-Controller ist insgesamt völlig trivial.

Aufruf

Vermutlich kann „scanimage“ selbst ein Bild scannen. Es geht aber viel bequemer von Gimp aus. Dort „Datei > Erstellen > XSane Geräteauswahl“ selektieren und den Scanner auswählen. Man kann sich dabei zwischen dem xsane- und einem einfachen Frontend entscheiden. Ich nehme am liebsten xsane, wegen der vielen Einstellmöglichkeiten.

Im Bild unten sieht man die xsane-Unterfenster. Rechts das Vorschaubild.

file:///home/dennis/01_documents/04_DOL/stage/images/computer/scsi-canon-xsane.png

Bildqualität

Die Bildqualität wird ganz wesentlich durch die Software bzw. die Einstellungen beim Scannen/bei der Nachverarbeitung bestimmt. Da ich keine Erfahrung mit Diascannern hatte, war ich zuerst geschockt ob der vielen kleinen Schmutzspuren und Staubteilchen, die in alten Dias hängen. Wenn man dann noch schlechte Einstellungen beim Scannen hat, sieht das Ergebnis erstmal völlig unbrauchbar aus. Meine Dias wurden jahrelang ziemlich lieblos auf dem Dachboden in nicht ganz dichten Diabehältern gelagert und dementsprechend staubig.

Bei der Einstellung des Scanners auf das Dia zahlt sich jedoch Beharrlichkeit aus.

Zunächst muss das Dia gesäubert werden, am besten mit Druckluft. Das muss kein Kompressor sein, ich habe eine handbedienten sogenannte „Blower Brush“, mit der man den Staub auch schon ganz gut vom Dia bekommt. Falls die pure Luft nicht langt, nehme ich den Pinsel-Teil hinzu. In ganz schweren Fällen hilft Abreiben mit einem weichen Tuch, danach dann wieder die „Blower Brush“.

file:///home/dennis/01_documents/04_DOL/stage/images/computer/scan_schmutz.pngfile:///home/dennis/01_documents/04_DOL/stage/images/computer/scan_schmutz1.png
     Ziemlich schmutziges ungereinigtes Dia links und Dia nach Reinigung mit Pinsel und Druckluft (Ausschnitt, unskaliertes Bild)

 

Dann muss man bei den ersten Bildern länger mit den xsane-Optionen im Fenster „Standard Optionen IX-27015“ experimentieren. Hier insbesondere die Werte „Helligkeit“ und „Kontrast“. Voreingestellt ist jeweils 128, bei mir ist aber meist ein Wert 70..80 für Helligkeit und 50..70 für Kontrast (oder auch 100..110 und 80..90) viel besser.


Die (oder der?) Blower Brush

Basierend auf den eingestellten Werten für Helligkeit und Kontrast in diesem Fenster macht xsane selbst noch eine Optimierung des Bildes. Diese basiert auf einem Vorschau-Scan, den man vom Vorschau-Fenster aus starten kann. Die resultierenden Werte werden im Fenster „xsane…“ angezeigt. Die Werte sind meist gut und verbessern das Bild deutlich. Man kann sie aber bei Nichtgefallen beliebig verändern. Das zugehörige Histogramm („Rohbild“ und „Verbessertes Bild“) zeigt grafisch die Korrektur an. Meist wird der Dynamikbereich des Bildes vergrößert, wie in untigem Screendump sichtbar.

file:///home/dennis/01_documents/04_DOL/stage/images/computer/xscan_histogramm.png

Hat man einmal passenden Werte, dann sind diese meist für eine ganze Serie oder einen ganzen Film, wenn sich die Lichtverhältnisse nicht dauernd ändern, passend.

Völlig überstrahlte Bereiche deuten auf zu starken Kontrast und/oder viel zu helles Scannen hin. Senken Sie dann die Werte für die Helligkeit immer weiter, wenn es besser wird, auch die Werte für den Kontrast.

Das Einscannen eines Dias dauert inklusive Vorschau-Scan bei mir 1:20 (Vorschau-Scan alleine 30 Sekunden), wobei ich noch eine kleine Farbkorrektur in den 1:20 vorgenommen habe.

Die Auflösung des Scanners ist finde ich recht gut, obwohl der Scanner schon älter ist. Erstaunlicherweise sind viele Dias in sich (also schon vor dem Scannen auf dem Dia-Film) unscharf, wenn man die hohe Qualität von digitalen Aufnahmen als Richtschnur nimmt. Ich habe hier ein Beispiel angefügt, bei dem die feine Auflösung des Dias, wenn die Aufnahme scharf war, erkennbar ist. In folgendem Bild ist an der Tür oben rechts ein kleines Schildchen angenagelt mit einer Nummer. Die Tür wurde aus etwa 5-6m Entfernung von unten aufgenommen, Das Gesamtbild wurde auf eine Breite von 500 Pixeln herunterskaliert. Vorher habe ich das Schildchen, das etwa 2cm Durchmesser hatte, aus dem noch unskalierten Scan ausgeschnitten. Man kann die Nummer noch lesen.

Verkleinertes Gesamtbild der Tür und unskalierter Ausschnitt des Schildchens (Durchmesser ca. 20mm) mit der Nummer. Die Nummer ist gerade noch lesbar.

Anbei noch einige Scans, die allerdings vom Format ~3880×2584 auf 600 Pixel Breite herunterskaliert wurden. Es wurde keine Retusche durchgeführt, d.h. verbleibender Schmutz und Staub ist zum Teil noch sichtbar. Die Bilder wurden auch nicht nachträglich geschärft, was man laut Internet Foren beim CanoScan unbedingt tun sollte.

Dieses Bild hätte man auch mit geringerer Helligkeit einscannen können, dann wäre der Himmel etwas blauer…

file:///home/dennis/01_documents/04_DOL/stage/images/computer/demo/d0058_1983_moskau.jpg
Etwas dunkel …

file:///home/dennis/01_documents/04_DOL/stage/images/computer/demo/d0072_1982_cap_d_adge.jpg
Ein paar verbleibende Staubflecken müsste man mit Gimp noch wegretuschieren…

file:///home/dennis/01_documents/04_DOL/stage/images/computer/demo/d0028_198x_daenemark.jpg

Das folgende scheinbar doppelt vorhandene Bild ist besonders interessant. Dieses wurde nämlich auch von einem Scan-Service (das zweite Bild) eingescannt. Ich finde meinen eigenen Scan (das erste Bild) nicht unbedingt schlechter.

file:///home/dennis/01_documents/04_DOL/stage/images/computer/demo/d0028_198x_daenemark.jpg
Eigener Scan mit CanoScan 2700F

file:///home/dennis/01_documents/04_DOL/stage/images/computer/demo/d0028_198x_daenemark.jpg
Scan von professionellem Scan-Service durchgeführt

Alles in allem lassen sich so die vorhandenen Dias alle einscannen. Da man wenig nachstellen muss, kann man das Scannen quasi nebenbei machen.