Afbeeldingen scannen en splitsen met Gimp
Ik ben niet alleen iemand die nogal permanent met computers bezig is, maar ik heb ook een diploma geschiedenis en archivistiek! Dit is totaal irrelevant, maar is wel een goede intro voor de post van vandaag; ik ben namelijk bezig met het inscannen van een foto-familie-archief.
Voor het scannen zelf heb ik … een scanner! Maar met alleen scannen komen we er niet, want ik scan 3 of 4 foto’s per keer (anders duurt het te lang), wat wel werkt, maar dan moet de ene scan nog gesplitst geraken in verschillende delen. Dat kan je manueel doen, maar als cliché-systeembeheerder wil ik natuurlijk een manier om dit automagisch te doen. En - tromgeroffel - dat kan! Hoe dat kan, daar dient dit bericht voor.
Inhoud
Software
Gimp
Ik ben nogal een free software-adept (FOSDEM!), dus natuurlijk kijken we eerst naar de open source/free software die bestaat. Zelfs niet-zeloten hebben ooit al wel eens van de Gimp gehoord, een fotobewerkingsprogramma dat te vergelijken is met Photoshop (maar dan - eerlijk duurt het langst - met minder features en een zekere leercurve). Je kan Gimp gewoon installeren (op Linux en op Windows) en er zit een goede handleiding bij.
DivideScannedImages
Voor manueel splitswerk is Gimp perfect geschikt, je kan delen van afbeeldingen uitknippen en opslaan als nieuwe afbeelding. Maar, in dit project willen we automatiseren! Gelukkig is Gimp uitbreidbaar met scripts, en heeft iemand in een ver verleden ooit een scriptje geschreven dat kan gebruikt worden om scans te splitsen in kleinere afbeeldingen: DivideScannedImages. Hoera! Ik heb wel de originele versie (zie onderaan) wat aangepast om ook met TIF overweg te kunnen, want dat is het standaardarchiveringsformaat voor scans.
Om het script te installeren moet je het downloaden en het zip-bestand uitpakken in de scripts-map op jouw computer.
- Linux:
/home/$mijngebruikersnaam/.gimp-$versie/scripts
(bv./home/pieter/.gimp-2.8/scripts
) - het kan zijn dat je verborgen bestanden tonen moet activeren om de map te kunnen zien. - Windows:
C:\Users\$mijngebruikersnaam\.gimp-$versie\scripts
(bv.C:\Users\Pieter\.gimp-2.8\scripts
) - je moet Gimp eerst één keer opstarten voor de map wordt aangemaakt.
We hebben nu onze tools, laat ons ze nu eens uitproberen!
Van één naar meerdere afbeeldingen
We beginnen met één grote afbeelding zoals die uit de scanner is gerold.
Voor het beste resultaat scan je trouwens met volgende instellingen:
- Uitvoerformaat TIFF (liefst zonder compressie).
- Resolutie van minsten 300 DPI (600 als je scanner dat kan).
- Kleur (zelfs al zijn het zwart-wit-foto’s). Als je iets kan instellen, een kleurdiepte van 24 bits of meer.
Zoals je kan zien is het één scan van verschillende “kiekjes” uit een ver verleden (een reeks familiefoto’s van een bezoek van een dochter die non geworden is aan de boerderij van haar ouders - alle personen zijn reeds overleden). Het is één bronbestand met 7 kleinere foto’s op, die ook niet allemaal mooi recht liggen.
Aanpassen bronbestand
Om een ideaal resultaat te krijgen moet het bronbestand er op een bepaalde manier uitzien.
- Er moet een duidelijk contrast zijn tussen de achtergrond (van de scanner - meestal wit of zwart) en de foto’s.
- De foto’s mogen niet tegen de rand van de scanner liggen.
Nu is het niet altijd mogelijk om daar bij het scannen op te letten. Gelukkig kunnen we het bronbestand nog wat aanpassen om een goed resultaat te krijgen.
Effen achtergrond
Meestal is dit wel OK, maar sommige scanners (waaronder die van mij) voegen een vervelende zwarte rand toe (blauw op onderstaande foto).
Gelukkig kunnen we de rand eenvoudig wegsnijden met het snijgereedschap (Gereedschap -> Transformatie -> Bijsnijden). Gebruik het gereedschap en selecteer een kader zonder de vervelende rand(en). Zorg er wel voor dat je foto’s niet daardoor tegen de rand van de afbeelding liggen (na de selectie dubbelklik je om het snijden uit te voeren).
Niet tegen de rand
Deze is wat moeilijker, want soms is er maar net genoeg plaats. Gelukkig is ook hier een oplossing voor. Als je foto’s ergens tegen de rand liggen, dan kan je simpelweg de afbeelding zelf wat uitbreiden met witruimte, waardoor er weer een mooi contrast ontstaat.
Ga hiervoor naar Afbeelding -> Canvasgrootte. Je krijgt dan onderstaand instellingsvenster.
Je kan hier bij Canvasgrootte de hoogte en breedte instellen. Ik lap er meestal een hondertal pixels bij, het maakt niet echt uit hoeveel, maar liefst wat meer om zeker te zijn dat het script het verschil goed ziet. Als ze tegen de boven- of linkerrand liggen, klik dan op de knop Centreren om overal evenveel toe te voegen.
Belangrijk is dat je Grootte lagen wijzigen instelt op Alle lagen! Anders vult hij niet met wit (het kleur), maar met transparantie. En dan ziet het script het verschil weer niet meer.
Splitsen
Na de voorbereiding, het echte werk. En zoals het een goed IT-er betaamt, wordt dat echte werk uitgevoerd door een computer.
Klik op het Filters menu en dan op Divide Scanned Images (als je die niet vindt kan je naar Filters -> Script-Fu -> Scripts vernieuwen gaan, dan zal hij ze opnieuw inlezen - als het dan nog niet werkt best Gimp eens herstarten (dan ben je wel je voorbereidend werk kwijt)).
Je moet dan een aantal instellingen aanpassen, maar geen nood, we hebben ze zeker niet allemaal nodig. Je kan er wel eens mee spelen om te zien of je een beter resultaat krijgt (iedere scanner en iedere scan is uiteindelijk anders). Ik geef een paar standaardinstellingen mee die ik gebruik met bevredigend resultaat zoals dat heet.
- Selection Threshold: ik zet die op
0
omdat hij anders niet altijd de volledige foto uitsnijdt (er is niet altijd een zeer groot verschil met de achtergrond). - Size Threshold: standaard op
200
. Je kan hem hoger zetten als je merkt dat hij soms maar een deel van de foto, of objecten die geen foto zijn uitsnijdt. - Save output to source directory: hiermee kan je instellen of hij de uitgesneden afbeeldingen naar dezelfde map schrijft als waar de bronafbeelding in staat. Wil je dat niet, vink dit af en selecteer de juiste map in Target directory.
- Save File Type:
tif
als archiveringsformaat. De originele versie van het script kent geen TIF, maar deze aangepaste versie wel. - Save File Base Name: ieder bestand dat uit dit script komt heeft een bepaalde vorm bestandsnaam, met name de Base Name gecombineerd met een nummer. Hier kan je de Base Name instellen (hier bijvoorbeeld
0000_bezoek_tante_non_
). - Save File Start Number: eerste nummer van de reeks. Start bij 1 (haha! dat had je niet verwacht!). Let wel op dat wanneer je meerdere bronbestanden na elkaar doet, je hier iedere keer het aantal al uitgesneden afbeeldingen bij optelt, want anders zal hij ze gewoon overschrijven (bv. als er op de eerste scan 2 foto’s stonden, dan begin ik bij de volgende scan met 3 en niet met 1).
- Max number of items: zet hier het aantal foto’s dat zich op de scan bevindt. Meestal pas ik dit niet aan en werkt de detectie zonder problemen. Als je weet dat er 3 foto’s zijn, maar je krijgt er altijd meer kan je dit verlagen. Als er meer dan 10 op staan moet je dit natuurlijk wel verhogen, anders heb je ze nooit allemaal.
- JPG Quality: doet in principe niets bij TIF, maar zet toch maar op
1,0
voor de zekerheid.
Als alles klaar is, klik dan op OK. Het kan even duren voor alles klaar is, en je zal zien dat er af en toe een venster opent. Dit is normaal.
Als alles goed gegaan is, krijg je dan in je Target directory dit resultaat:
Nabewerking
Als al je foto’s mooi recht lagen heb je weinig werk in nabewerking. Maar dat is vaak niet zo, en het onderdeel in het script dat het resultaat recht kan leggen werkt (nog) niet. Je zal dit dus manueel moeten doen, net zoals foto’s draaien wanneer ze ondersteboven lagen.
Verdere aanpassingen zoals kleurcorrecties moet je sowieso manueel achteraf doen.
Desondanks gaat dit veel sneller dan met de hand uitsnijden, dus het is sowieso een succesverhaal! Test het eens uit en laat weten of het goed gelukt is!
Meer informatie
- Originele versie van het script
- Blog van de originele auteur
- Versie die met TIF overweg kan - het is ook de bedoeling om op termijn het automatisch rechtleggen terug te activeren, net zoals de mogelijkheid om een aantal TIF-opties aan te passen.