Il codice di questa pagina non è partito.

Se apri index.html direttamente da una cartella, i moduli JavaScript restano bloccati, quindi non succederà niente quando sceglierai la foto di una pagina. Servi invece la cartella via http:

powershell -ExecutionPolicy Bypass -File serve.ps1

Poi apri http://localhost:8080/.

Scanner per documenti — la foto di una pagina, raddrizzata

Fotografa la pagina. Ti torna indietro qualcosa che sembra scansionato.

Lingua: Italiano
Vedi il codice
Qui non si caricano documenti, mai. Non c'è nessun server.

La foto viene decodificata, raddrizzata, ripulita e scritta in un PDF dal tuo browser, usando soltanto aritmetica e i codec che si porta già dietro. Questo strumento non ha nessuna funzione di rete — niente da recuperare, niente da mandare — e il motivo per cui qui la cosa conta è di che cosa si fotografano le pagine: un passaporto, una busta paga, un contratto d'affitto, un modulo che un ufficio ha chiesto di «scansionare e rispedire».

Verifica dal vivo: verifica in corso…

Offline: verifica in corso…

Non fidarti sulla parola: apri gli strumenti di sviluppo, guarda la scheda Rete e scansiona una pagina. Non una richiesta porta con sé una foto, una miniatura, un nome di file o la posizione di un singolo angolo. Oppure stacca la rete e scansionane una lo stesso.

1 Scegli le foto

Una foto per pagina, scattata da qualche punto sopra. Tutta la pagina deve stare nell'inquadratura, e i quattro angoli dovrebbero essere visibili o quasi. Tutto il resto — l'inclinazione, l'ombra, il tavolo sotto — è il motivo per cui questo strumento esiste. Aggiungine più di una e diventano le pagine di un documento, nell'ordine in cui le aggiungi.

2 Metti gli angoli sulla pagina

Tocca un punto qualsiasi della foto e l'angolo più vicino viene al tuo dito; trascinalo sull'angolo della pagina. Con Tab raggiungi un angolo da tastiera, i tasti freccia lo spostano di un pixel e con Shift di dieci. Niente di tutto questo è definitivo: la scansione viene presa da dove i quattro angoli finiscono.

Scegli una foto e comparirà qui, con i suoi quattro angoli già trovati per te.

3 Ripulisci

Quello che c'è qui sotto è il risultato vero, prodotto dallo stesso codice che scrive il file: raddrizzato e con la luce irregolare divisa via. Sullo schermo viene disegnato a dimensione di schermo mentre scegli; il file vero e proprio nasce alla risoluzione della foto.

Colore, uniformato La carta viene misurata lungo tutta la pagina e divisa via, così l'ombra sparisce e la carta torna bianca, mentre un timbro, una firma a inchiostro blu o una riga evidenziata si tengono il loro colore. È la modalità da usare quando il colore fa parte del documento.

Scala di grigi Lo stesso uniformamento senza il colore. Più piccola del colore e più gentile con una fotografia o con una firma di quanto lo sia il bianco e nero.

Bianco e nero Ogni pixel viene deciso contro il suo vicinato e non contro un numero unico per tutta la pagina, ed è esattamente questo che tiene leggibile la scrittura dentro un'ombra. È quello che rende piccola una scansione: un contratto di venti pagine viene fuori sotto il megabyte, e come foto arriverebbe a una quindicina. Questa modalità non conosce i mezzitoni, quindi niente che abbia sopra una fotografia dovrebbe usarla.

Lascia com'è Raddrizzata e nient'altro. Per una pagina in cui conta la carta stessa: qualcosa di vecchio, qualcosa di colorato, una fotografia.

La pagina raddrizzata compare qui, appena c'è una foto da raddrizzare.

4 Salva il documento

Il PDF nasce qui, nella memoria di questa pagina, una pagina alla volta. Dall'altra parte di questo strumento non c'è nessun server a cui mandare una busta paga, un passaporto o un contratto, e nel codice non c'è niente che lo farebbe se ci fosse.

Risoluzione di stampa Quanto grande viene chiamato un foglio fatto di un certo numero di pixel. Cambia la dimensione con cui il documento viene stampato, e non cambia un solo pixel della scansione.

Lato più lungo Un tetto per la pagina raddrizzata. La foto di una pagina contiene molti più pixel di quanti la pagina ne valga, e 2400 sul lato lungo sono circa 200 DPI su un A4.

Qualità Per le modalità a colori e in scala di grigi, che vengono salvate come JPEG. Le pagine in bianco e nero sono salvate in modo esatto, e per loro questo non cambia niente.

Titolo del documento (facoltativo) L'unica cosa che viene scritta nel documento oltre alle pagine. Nessuna data, nessun autore e niente su questo dispositivo. Vedi src/document.js.

82%

Vedi come Markdown

Come scansionare un documento con la fotocamera del telefono

  1. Fotografa la pagina. Dall'alto, con tutta la pagina nell'inquadratura e i quattro angoli visibili o quasi. Non deve essere perfettamente frontale e non deve essere illuminata in modo uniforme: l'inclinazione e l'ombra sono il motivo per cui questo strumento esiste. Quello che conta è riempire l'inquadratura — una pagina fotografata da metà stanza non ha dentro nessun dettaglio da recuperare.
  2. Controlla i quattro angoli. Te li trova lui quando la foto viene letta, e la pagina lo dice quando non ne è sicura — una pagina su una scrivania dello stesso colore della carta ha davvero un bordo difficile da vedere. Premi in un punto qualsiasi della foto e l'angolo più vicino viene al tuo dito, oppure raggiungine uno con Tab e spostalo con i tasti freccia.
  3. Scegli che cosa fare con la luce. «Colore, uniformato» misura la carta lungo tutta la pagina e la divide via, così l'ombra sparisce e un timbro o una firma si tengono il loro colore. «Bianco e nero» va oltre ed è quello che rende una scansione abbastanza piccola da mandarla per email. Quello che vedi sullo schermo è il risultato vero, prodotto dallo stesso codice che scrive il file.
  4. Aggiungi le altre pagine. Ogni foto che aggiungi diventa un'altra pagina dello stesso documento, nell'ordine in cui sono elencate, e ognuna si tiene i suoi angoli. Le frecce su una pagina nella striscia la spostano più avanti o più indietro.
  5. Salva il PDF, e aprilo prima di mandarlo. Il documento viene scritto qui, nella memoria di questa pagina. Per farlo non è stato caricato niente, e di lui non è stato riferito niente da nessuna parte.

La versione lunga

Come scansionare un documento col telefono Che cosa separa la fotografia di una pagina dalla scansione di quella pagina: l'inclinazione, la luce irregolare e la dimensione del file. Come scattare la foto, che cosa sistemare dopo, e perché niente di tutto questo ha bisogno di un server.

Domande

Il mio documento viene caricato da qualche parte?

No. La foto viene decodificata, raddrizzata, ripulita e scritta in un PDF dal tuo browser sul tuo hardware. Questo strumento non ha nessuna funzione di rete — non va mai a prendere niente e non manda mai niente — e la Content-Security-Policy della pagina elenca ogni indirizzo che può contattare, nessuno dei quali appartiene a questo sito. Carica la pagina una volta, stacca la rete, e continua a funzionare.

Come fa a trovare gli angoli della pagina senza un modello?

Cercando i quattro lunghi bordi dritti di cui è fatto un rettangolo. La foto viene rimpicciolita, se ne prende il gradiente — dove l'immagine cambia, e in quale direzione — e ogni pixel che sta su un bordo vota per la linea dritta su cui si troverebbe. Le linee forti vengono accoppiate in rettangoli candidati, e ogni candidato prende un punteggio percorrendo i suoi quattro lati e chiedendosi quanta parte di ognuno abbia davvero un bordo sotto, e se i quattro insieme siano il contorno di una cosa sola: una pagina è più chiara di quello che le sta intorno, o più scura, ma lo è nello stesso modo su tutti e quattro i lati, ed è questo che impedisce di scambiare una riga di testo per il fondo della pagina. Non ci sono pesi, non viene scaricato niente, e l'aritmetica è la stessa per ogni documento che ci passa dentro.

Gli angoli che ha trovato sono sbagliati. E adesso?

Trascinali. Gli angoli sono una posizione di partenza e mai una decisione: la scansione viene presa da dove finiscono tutti e quattro. Premi in un punto qualsiasi della foto e l'angolo più vicino salta al tuo dito, che è più facile che centrare una maniglia piccola, e i tasti freccia spostano l'angolo che ha il fuoco un pixel per volta. La pagina ti dice anche quando gli angoli sono un'ipotesi e non un ritrovamento, e segna quella pagina nella striscia — una pagina appoggiata su una scrivania più o meno del suo stesso colore è il motivo solito, perché lì di bordo da trovare non ce n'è quasi.

Perché la pagina raddrizzata viene fuori della forma giusta, e non schiacciata?

Perché la forma viene ricavata dalla prospettiva e non misurata sui bordi. Una pagina fotografata di sbieco ha il bordo lontano accorciato, quindi il metodo ovvio — prendere la coppia di bordi opposti più lunga e chiamare quello il rapporto — produce un A4 visibilmente tozzo, che è quello che ti dà la maggior parte degli scanner sul web. La fotografia di un rettangolo porta in realtà abbastanza informazione da ricavare sia il rapporto d'aspetto del rettangolo sia la lunghezza focale della fotocamera, a patto solo che la fotocamera sia una normale; è un risultato di Zhang e He del 2003, ed è quello che fa src/geometry.js. Dove la foto è stata scattata frontale non c'è prospettiva da cui partire e non serve, perché allora i bordi sono esatti — quindi ripiega su quelli, e la pagina dice quale delle due ha risposto.

Che cosa fa davvero all'immagine la «ripulitura»?

Divide via la luce. La luminosità propria della carta viene misurata lungo tutta la pagina — una griglia di riquadri, e in ogni riquadro un percentile alto della luminosità, che il testo è troppo scuro e troppo rado per spostare — e ogni pixel viene diviso per la carta stimata in quel punto. Quello che resta è l'inchiostro, illuminato in modo uniforme, senza più l'ombra e senza la caduta di luce. Non è la stessa cosa che alzare il contrasto: alzare il contrasto di una pagina fotografata rende bianca la parte chiara, nera la parte scura e illeggibile quello che c'è scritto nella parte scura, ed è per questo che i «livelli automatici» peggiorano queste immagini invece di migliorarle.

Perché la modalità bianco e nero è così tanto più piccola?

Perché un'immagine con dentro due colori è davvero una frazione dei dati di un'immagine con sedici milioni, e qui viene salvata proprio così: un bit per pixel, impacchettati otto per byte e compressi in modo esatto, e non come il JPEG di un'immagine in bianco e nero. Sulle stesse pagine viene fuori circa diciotto volte più piccola della modalità a colori, così un contratto di venti pagine sta sotto il megabyte invece di arrivare a una quindicina. La soglia è quella di Sauvola, che decide ogni pixel confrontandolo con la media e la dispersione del suo vicinato invece che con un numero unico per tutta la pagina — ed è questo che tiene leggibile quello che è scritto dentro un'ombra. Non ha mezzitoni, quindi una pagina con sopra una fotografia conviene farla con una delle altre modalità.

Posso mettere più pagine in un solo PDF?

Sì. Ogni foto che aggiungi diventa un'altra pagina, nell'ordine in cui sono elencate, e ogni pagina si tiene i suoi angoli — così una pila di pagine fotografate una dopo l'altra diventa un documento solo. Le frecce su ogni pagina nella striscia la spostano più avanti o più indietro. L'impostazione della ripulitura è condivisa da tutte apposta: pagine dello stesso documento ripulite in modo diverso sembrano due documenti.

Legge il testo, così posso cercare dentro il PDF?

No. Non c'è un livello di testo e non c'è riconoscimento dei caratteri: quello che esce è l'immagine della pagina su una pagina. Farlo per bene vorrebbe dire un motore OCR, che sono decine di megabyte di modello da scaricare — e uno scanner per documenti che andasse a prendere un modello prima di poter leggere la tua busta paga sarebbe uno scanner per documenti con un motivo per telefonare a casa a proposito di buste paga. Se ti serve il testo, la modalità bianco e nero produce esattamente il tipo di file su cui il software OCR sulla tua macchina lavora meglio.

È venuta sfocata. Perché?

Quasi sempre perché la pagina era piccola nella foto. Il pannello sotto l'anteprima dice quanta parte dell'inquadratura ha riempito la pagina e più o meno a quanti punti per pollice corrisponde su un foglio di quella misura — sotto i 150 DPI circa una scansione stampata sembra molle, e non c'è strumento che possa fare qualcosa per un dettaglio che nel file non c'è mai stato. Avvicinati invece di zoomare, stai fermo, e lascia che la fotocamera metta a fuoco la pagina prima di premere. Il mosso è l'altra causa, e non è recuperabile nemmeno quello.

È gratis, e serve un account?

È gratis, e non c'è un account, né un accesso, né una prova, né un limite di pagine, né una filigrana. Non c'è nemmeno un limite alla dimensione delle foto, perché non c'è un server a pagarlo — il lavoro succede sulla tua macchina. Il sito ospita pubblicità, ed è quella che lo paga; agli inserzionisti non viene dato niente dei tuoi documenti.