Immagine in testo (OCR): come funziona e come ottenere un testo pulito
L’OCR, riconoscimento ottico dei caratteri, trasforma l’immagine di un testo in testo da copiare, cercare e modificare. È ciò che legge lo screenshot di un messaggio di errore, la foto di una lettera o un contratto scansionato. La maggior parte dei suoi errori viene dall’immagine, non dal motore: qualche minuto dedicato alla foto di solito fa risparmiare più tempo che correggere il risultato.
Come l’OCR legge un’immagine
Tesseract, il motore open source dietro la maggior parte degli strumenti OCR gratuiti, lavora in tre passi. Prima trasforma l’immagine in bianco e nero, decidendo per ogni pixel se è inchiostro o carta. Poi trova i blocchi, le colonne e le righe di testo. Infine, dalla versione 4.00, una rete neurale legge ogni riga intera in una volta, non lettera per lettera, e i dati della lingua la aiutano a scegliere tra forme simili.
Ogni passo può sbagliare a modo suo: un’ombra sulla pagina rovina il bianco e nero, una foto storta rovina le righe e la lingua sbagliata rovina le lettere.
Cosa conta di più
- Risoluzione: la documentazione di Tesseract dice che funziona meglio con immagini di almeno 300 dpi. Per una scansione scegli 300 dpi; per una foto fai in modo che la pagina riempia l’inquadratura.
- Righe dritte: su una pagina inclinata il motore trova le righe molto peggio. Fotografa la pagina di fronte, o ruota l’immagine finché le righe sono orizzontali.
- Luce uniforme e contrasto: testo scuro su sfondo chiaro e uniforme. Ombre, riflessi e carta irregolare fanno sparire lettere nel passaggio al bianco e nero.
- Un piccolo margine: ritaglia l’immagine sul testo ma lascia un bordo bianco sottile, di circa 10 pixel. Il testo attaccato al bordo viene letto male, e i bordi scuri di una scansione possono essere letti come lettere.
- La lingua giusta: dice al motore quali lettere e accenti aspettarsi. Un testo portoghese letto come inglese perde le sue ç e ã.
- Un tipo di testo alla volta: il testo stampato in un solo carattere si legge meglio. La scrittura a mano, i caratteri decorativi e il testo sulle foto si leggono peggio.
Problemi comuni e cosa fare
| Cosa vedi | Cosa fare |
|---|---|
| Lettere mancanti o spezzate | Fai la foto con luce uniforme, senza ombre; aumenta il contrasto o scansiona a 300 dpi |
| Righe mescolate o in disordine | Raddrizza l’immagine; per scontrini e tabelle leggi riga per riga |
| Segni senza senso sui bordi | Ritaglia i bordi scuri dello scanner lasciando un sottile margine bianco |
| Accenti persi | Scegli la lingua del testo prima di leggere |
| Testo chiaro su fondo scuro letto male | Inverti prima i colori: il motore si aspetta testo scuro su fondo chiaro |
| 0 e O, 1 e l, 5 e S confusi | Controlla a occhio codici, importi e nomi: nessuna parola aiuta il motore a indovinare |
Gli errori nei numeri sono i più gravi, perché niente nel testo li tradisce. Confronta sempre importi, date e numeri di riferimento con l’immagine.
Screenshot, foto e scansioni
Uno screenshot è il caso facile: nitido, dritto e con luce uniforme. Il suo unico problema è il testo piccolo delle interfacce, che lo strumento di nTools ingrandisce prima di leggere. La foto di una pagina porta i casi difficili: prospettiva, ombre, sfocatura e sfondo carico. Una scansione con scanner piano a 300 dpi è la fonte migliore per i documenti lunghi.
PDF scansionati
Un PDF nato da una scansione è un insieme di immagini: il testo non si può selezionare, una ricerca non trova nulla e un lettore di schermo non ha niente da leggere. Le linee guida per l’accessibilità del W3C (WCAG) trattano quel PDF come immagini di testo e raccomandano di applicare l’OCR e poi controllare il testo riconosciuto e il suo ordine di lettura. Se puoi selezionare il testo di un PDF, è già testo, e copiarlo è più preciso di qualsiasi OCR.
PDF in Word legge le pagine scansionate con l’OCR e restituisce un documento modificabile; puoi anche trasformare le pagine in immagini e leggerle in Immagine in testo.
Dove va l’immagine
Molti servizi OCR caricano l’immagine su un server. Tesseract può anche funzionare dentro il browser, compilato in WebAssembly: così funziona lo strumento di nTools, quindi l’immagine e il testo restano sul tuo dispositivo. Il browser scarica solo il motore e i dati della lingua scelta.
Domande frequenti
L’OCR sa leggere la scrittura a mano?
Male. Tesseract è addestrato sul testo stampato; uno stampatello curato a volte funziona, la scrittura normale no. Per la scrittura a mano servono motori addestrati apposta.
Quanto è preciso l’OCR?
Su una pagina stampata pulita scansionata a 300 dpi quasi ogni carattere è giusto. Foto, testo piccolo e caratteri insoliti portano più errori. La confidenza mostrata dallo strumento è una stima del motore stesso, un segnale d’allarme più che una garanzia.
Perché 0 e O, o 1 e l, vengono confusi?
In molti caratteri hanno forme quasi uguali. Nelle parole normali i dati della lingua aiutano a scegliere; in codici, numeri di serie e password no, quindi controllali carattere per carattere.
Quali lingue sa leggere?
Per Tesseract esistono dati per più di 100 lingue. Lo strumento di nTools offre inglese, spagnolo, francese, tedesco, italiano e portoghese; scegli la lingua prima di leggere, perché cambia le lettere che il motore si aspetta.
L’OCR conserva tabelle e formattazione?
No. Il risultato è testo semplice con gli a capo. Le tabelle sono un punto debole noto di Tesseract: leggile riga per riga, così ogni riga resta unita, e ricostruisci le colonne dopo.
Riferimenti
- Tesseract documentation — Improving the quality of the output
- Tesseract documentation — Neural nets in Tesseract 4.00
- Tesseract.js — Pure JavaScript OCR for more than 100 languages
- W3C — WCAG 2.2 technique PDF7: performing OCR on a scanned PDF document
- W3C — Understanding WCAG 2.2: Images of Text (1.4.5)
Guide correlate
- Indirizzi IP spiegati: IPv4, IPv6 e gli intervalli riservati
- Sottoreti e CIDR spiegati: prefissi, maschere e host utilizzabili
- Record DNS spiegati: A, AAAA, CNAME, MX, TXT e NS
- Un sito è down o il problema è solo tuo? Come verificarlo, passo per passo
- Codici di stato HTTP ed errori di Cloudflare: cosa significano 403, 404, 429, 500, 503 e 521
- Timestamp Unix e fusi orari spiegati
- Contare le date: giorni tra due date, anni bisestili e settimane ISO
- Fusi orari e ora legale: riunioni tra città
- Formati immagine spiegati: JPEG, PNG, WebP, AVIF e HEIC
- Le dimensioni di un’immagine spiegate: pixel, DPI, peso e qualità
- Le foto del telefono spiegate: HEIC, metadati EXIF e la tua privacy
- Robustezza delle password spiegata: lunghezza, entropia e passphrase
- Funzioni di hash spiegate: SHA-256, checksum e hashing delle password
- JSON Web Token spiegati: claim, firme e validazione sicura
- Le chiavi API spiegate: lunghezza, formato, archiviazione e rotazione
- Gli UUID spiegati: v4, v7 e come scegliere la versione giusta
- I codici QR spiegati: capacità, correzione degli errori e dimensioni di stampa
- Percentuali e IVA spiegate: aggiungere, scorporare e cumulare
- Errori comuni nel JSON e come correggerli
- I file CSV spiegati: separatori, virgolette, codifica ed Excel
- Le codifiche del testo spiegate: UTF-8, Base64 e codifica URL
- Espressioni regolari: classi, quantificatori e gruppi
- MB o MiB, Mbps o MB/s: dimensioni dei file e velocità
- Espressioni cron spiegate: campi, passi e fusi orari
- Parametri UTM spiegati: etichettare i link per le analisi
- Punto di pareggio, margine e ROAS: i numeri di una piccola attività
- Tariffe freelance spiegate: tariffa oraria, tariffa giornaliera e ore fatturabili
- RPM e CPM di YouTube spiegati: quanto guadagna davvero un creator
- Contare i caratteri: SMS, X, titoli di YouTube ed emoji
- Il contrasto dei colori spiegato: rapporti WCAG, testo leggibile e formati di colore
- Modificare i PDF nel browser: cosa conservano unione, divisione e conversione