Raccogliamo info su sto scanner

Installazione

Installare chdk

La build per le differenti macchine fotografiche è reperibile a http://mighty-hoernsche.de/
Per installre seguire la guida chdk.wikia.com/wiki/Downloads

I repository

Archlinux

[boyska64]
Server = http://boyska.s.pt-labs.net/archrepo

Debian

wget deb.libreant.ga/insomnia.list -O /etc/apt/sources.list.d/insomnia.list && apt-get update && apt-get install chdkptp colorcut ppmrose

(nota: python-opencv ha MOLTE dipendenze, e colorcut dipende da esso. Quindi sappi che per installare colorcut ti tiri giu’ tante cose)

ppmunwarp

Per archlinux l’ho messo nel mio repository. Per debian sta nel repository deb.l38taz.ga (pacchetto ppmrose).
Per gli altri non so, pero’ compilarlo e’ facilissimo. Vedi ad esempio il pkgbuild

spreads

Installazione

installare spreads e’ un panico, perche’ la versione stabile non funziona, almeno a me
inoltre ha 500mila dipendenze non ben documentate. Ecco un report:

Per installare spreads in modo che poi funzioni, tocca fare

virtualenv -p python2 ve
./ve/bin/pip install git+git://github.com/jbaiter/spreads.git@master
./ve/bin/pip install cffi==0.8.6
./ve/bin/pip install Pillow==2.5.3 PyYAML==3.11 args==0.1.0 blinker==1.3 clint==0.3.7 colorama==0.3.1 futures==2.1.6 jpegtran-cffi==0.5 psutil==2.1.1 pycparser==2.10 pyusb==1.0.0b1 spreads==0.5dev wsgiref==0.1.2

bisogna poi avere installato sul sistema tesseract e djvubind.
Su archlinux,

pacman -S tesseract djvubind

dove djvubind è disponibile nei miei repository

Configurazione

Lo lanci con ./ve/bin/spread configure e lui ti fa partire un wizard, ma poi si lamenta perche’ ho una sola fotocamera.

chdkptp

Per installarlo, per archlinux e’ su AUR e su boyska64; c’e’ anche per raspbian

questo coso controlla la fotocamera. A una certa puo’ capitare che smetta di funzioanre. Se guardi in dmesg, si lamenta che ha finito gli id validi, qualcosa del genere. Si mette una toppa facendo (spero di non toppare il comando, vado a memoria)

rmmod xhci_hcd
sleep 5
modprobe xhci_hcd

Elaborazione immagine

Calibrazione e dewarping

Ci sono due calibrazioni da fare: una e’ per il dewarp, e l’altra e’ per split by color.

DeWarp: Usare il ps allegato: stamparlo A COLORI. Va poi passato a ppmunwarp.

Split By Color: anche qui c’e’ un pdf allegato ; nel pdf ogni ellisse e’ alto 5cm e largo 7,07 (il rapporto e’ sqrt(2)) in modo che visto in prospettiva venga tondo. Entrambi distano 1cm dal bordo. Questo vuol dire che i centri distano 24.7cm. Se la foto NON contiene un A2, allora si puo’ dire a colordetect che --min-dist 11%

Il primo provo

Abbiamo fatto una prova a cazzo di cane ed e’ venuta benone. Si ringrazia coccolino (pure Null eh!) che ha fatto tutti pallini gialli su un foglio a quadretti.

Prima si calibra con ppmunwarp. poi si scattono le foto al libro,

le si unwarpa, e questo ci ritaglia la pagina, circa.

Quindi si passa tutto a scantailor, che con pochissima fatica fa sta roba. cioe’ forte.

Dopo aver montato la struttura abbiamo fatto altre foto di configurazione, si rigrazia sally (pure giorgia eh!) che ha fatto tutti i pallini rossi.

Abbiamo scattato diverse foto in raw o dng (raw proprietario), io ne posterò in formati differenti, così chi si vuole divertire a fare prove può.

Io per ragioni di tempo stasera non ho provato a fare il dewarping su quelle immagini, ma l’altra volta non aveva funzionato!
Così ho ragionato, leggendo solo keystone effect, che non faccia il dewarping di entrambe le pagine in contemporanea, in tal caso si potrebbe prendere l’immagine, tagliarla a metà con pamdice(prossima sezione) e deprospettivarle una alla volta.
Credo che con un po di lavoro potremmo anche integrare in spread sta cosa, così da avere 2 foto anziche 2 macchinette.

Regà, tanto non funziona un cazzo. Proviamo a fare la calibrazione della threshold e dell unwarp con questa immagine

we.riseup.net/assets/224733/IMG%201640.raw

(ATTENZIONE: del link sopra non si vede l’anteprima perché è un .raw e la wiki non li visualizza. Scaricatela per fare le prove,
con la l’anteprima è sotto)

NUOVA IMMAGINE PER LA CALIBRAZIONE DI splitbycolor e ppunwarp (occhio che è in jpg, va convertita in ppm)

Elaborazione immagine

La prima cosa da fare e’ dividere l’immagine in due. Questo viene fatto grazie a split by color. Questa e’ la command line tarata per un foglio coi pallini blu di 2cm di raggio e la nostra fotocamera:

colordetect --hue 120 small/IMG_0009.JPG --min-saturation 80 --min-dist 25% --min-radius 2% --max-radius 5% --param2 5 --hue-radius 20 --hue 120 --cut-left 40% --cut-right 40% --blur 11 --coordinates -|imagecut - small/IMG_0009.JPG --outfile nuovo.png

e generera’ due file: nuovo.L.png e nuovo.R.png

queste due immagini vanno entrambe unwarpate. Come si fa? si deve usare ppmunwarp, ma il foglio di calibrazione deve essere anch esso spezzato. Quindi si avra’ un profilo left.unwarp e uno right.unwarp, creati a partire da matrice.L.png e matrice.R.png, creati da splitbycolor a partire da una command line come quella sopra, ma partendo dalla foto alla matrice coi pallini rossi.

Quanto prima si dovrebbe fare uno scriptino user-friendly,
-scattare fotografia a seguito della pressione di un tasto, a fine ciclo (?) convertire tutte le raw in ppm con rawtoppm e quindi tagliare le pagine (permette di definre 2 outputname) e passarle per ppmunwarp.
Si potrebbe fare un elaborazione sequeziale per destre e sinistre dando 2 file di calibrazione differenti a ppmunwarp.
poi il resto…

Script di automazione in bash

Per ora c’e’ un insieme di script non ancora integrati tra di loro; questi tool non fanno niente di speciale, ma automatizzano chdkptp, colordetect, imagecut, ppmunwarp

Rimane da fare uno scriptino che possa mettere tutto insieme in un’"interfaccia utente" piu’ comoda possibile per un sistema headless. Questo scriptino dovrebbe anche permettere di usare un altro programma al posto di shoot. In questo modo si potrebbe avere uno mock-shoot che legge da una dir e si limita a copiare i file in modo crescente. Questo sarebbe ottimo per poter testare tutto senza avere una fotocamera: prima si fa la foto a tutta la sequenza e poi si sviluppa il modo di mettere tutto insieme.

Hardware

Dritte furbe

Lista

Servono subito

Servono poi

Alcune immagini

Progetto

Preventivo legno

In base al preventivo della falegnameria consultata avremmo bisogno di 5 pannelli di legno. Ci suggerivano di usare, al posto del truciolato, fogli di MDF da 1cm. Costa poco di più ma si lavora meglio perché più solido. Comunque possiamo discuterne. Il loro totale era di 14eur per il legno e altri 4eur per gli altrettanti tagli a 90° (vedi figura).
In totale avremmo:

nota: rispetto al progetto ci sono alcuni cm di differenza dovuti agli incastri. E qualcosa in più sul pannello di base per migliorare la solidità.

Led

Ferramenta

Materiali necessari:

Sulla base, 8 elle (2 per lato), con le relative 32 viti
Tra le pareti verticali, altre 8 elle e 32 viti.
Per fissare il “timpano” alla base, 4 piattine (2 per lato) e relative 8 viti.

Totale:

Materiale necessario:

Cose ancora da fare

Risorse utili

Altri progetti

Calafou

Funziona bene, un po’ complesso, problema: quando il libro si alza e “tocca” il plexiglass a volte la pagina si muove e fa una piccola piega, che compromette la qualità dello scatto; inoltre, se ne accorgono solo alla fine, quindi scattarne una nuova non è un’opzione.

Link vari

Questo coso è pieno di spunti (non completamente implementati) su come raddrizzare le pagine o trovare i bordi
www.danreetz.com/blog/2011/01/05/some-n.../
Il metodo del laser (2euri) prosegue qui www.diybookscanner.org/forum/viewtopic....