Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Riconoscere le righe storte e raddrizzarle

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Riconoscere le righe storte e raddrizzarle

Messaggioda Foto UtentePiercarlo » 8 ott 2021, 14:19

Ciao a tutti! Il problema che vi sottopongo è più un problema di grafica al computer che non di programmazione in senso stretto. Forse è già stato risolto e forse la soluzione è semplice ma io non la conosco, ragion per cui chiedo lumi.

Mi trovo spesso a ripulire testi scanditi (spesso interi libri) che sono stati ripresi storti e che vanno pertanto raddrizzati in photoshop - manualmente. Quello che sto cercando è un algoritmo, da implementare come script di azione in photoshop, che sia in grado di "leggere" le righe di testo scandite di una pagine, valutare la loro inclinazione e raddrizzarle di conseguenza. Esiste? Dove si può trovare? Grazie fin da ora per ogni suggerimento.

NOTA BENE - Non sto cercando una estensione o un plug-in pronti all'uso ma proprio un algoritmo da implementare come script. Se può essere d'aiuto, tale algoritmo dovrebbe essere in grado di riconoscere e correggere righe inclinate di al massimo più o meno 5 gradi, con una sensibilità particolare per le inclinazioni comprese entro i più o meno 2 gradi.
Avatar utente
Foto UtentePiercarlo
22,6k 6 10 13
G.Master EY
G.Master EY
 
Messaggi: 6246
Iscritto il: 30 mar 2010, 19:23
Località: Milano

0
voti

[2] Re: Riconoscere le righe storte e raddrizzarle

Messaggioda Foto UtenteIlGuru » 8 ott 2021, 14:35

Non saprei come implementarlo, ma a graaaandi linee direi:
- Applicare un filtro, tipo il blur, all'immagine in modo da rendere le righe con i caratteri delle barre scure.
- Fornire l'immagine ottenuta ad una matrice neuronale addestrata a riconoscere le righe orizzontali, che ignorando immagini ecc.. dia in uscita uno scalare che corrisponde all'angolo di inclinazione del testo
- Applicare quel valore ad un tool di rotazione dell'immagine in modo da raddrizzarla
- Salvare l'immagine
- Ripetere con un'altra immagine
\Gamma\nu\tilde{\omega}\theta\i\ \sigma\epsilon\alpha\upsilon\tau\acute{o}\nu
Avatar utente
Foto UtenteIlGuru
4.984 2 10 13
G.Master EY
G.Master EY
 
Messaggi: 1775
Iscritto il: 31 lug 2015, 23:32

0
voti

[3] Re: Riconoscere le righe storte e raddrizzarle

Messaggioda Foto Utentealev » 8 ott 2021, 14:46

Non ho la soluzione per il problema, però penso di aver individuato un possibile bug nella descrizione della tua richiesta

Spesso, se non sempre, le scansioni vengono effettuate in 2 modalità: testo (txt) oppure immagine, molto più probabilmente la seconda

Che io sappia, una volta che una immagine è scansionata, quella rimane e andare ad individuare delle righe che non siano orizzontali necessita giocoforza di un riferimento rispetto al quale effettuare la valutazione

E ritengo che tale valutazione debba essere fatta per tutte le righe di una pagina, ammesso che non sia troppo complicato distinguere, in una immagine, le righe di caratteri alfanumerici rispetto al resto; la problematica è nota a chi sviluppa gli OCR e non sempre pare risolvibile con qualità che non richieda aggiustamenti a mano

A valle del pippone, secondo me, è più semplice raddrizzare la pagina intera, ossia l'immagine che la restituisce visivamente
Avatar utente
Foto Utentealev
4.686 2 9 12
free expert
 
Messaggi: 5202
Iscritto il: 19 lug 2010, 14:38
Località: Altrove

0
voti

[4] Re: Riconoscere le righe storte e raddrizzarle

Messaggioda Foto UtentePiercarlo » 8 ott 2021, 16:50

Ringrazio entrambi per aver tentato di dare una risposta e preciso qui qualcosa in più. Chi va raddrizzata è in effetti l'intera pagina, non le singole righe; l'algoritmo cercato non deve "leggere" alcunché ma soltanto determinare l'inclinazione delle righe rispetto ai bordi del documento che costituiscono i riferimenti rispetto ai quali raddrizzare in un senso o nell'altro l'immagine della pagina. Forse il problema si può semplificare (si fa per dire) a come leggere l'inclinazione di un parallelepipedo scuro (l'area di testo da raddrizzare) rispetto ai bordi del documento in cui è racchiuso per poi correggerla.
Avatar utente
Foto UtentePiercarlo
22,6k 6 10 13
G.Master EY
G.Master EY
 
Messaggi: 6246
Iscritto il: 30 mar 2010, 19:23
Località: Milano

0
voti

[5] Re: Riconoscere le righe storte e raddrizzarle

Messaggioda Foto UtenteFranco012 » 8 ott 2021, 17:25

Se i testi sono in formato PDF, niente di più facile: utilizzando la funzione "riconoscimento testo OCR" presente in Adobe Acrobat Pro, in pochi secondi ci si ritrova la pagina automaticamente raddrizzata, in base all'orientamento del testo presente nella pagina (bastano anche poche righe). Se il documento è composto da più pagine, ciascuna viene raddrizzata separatamente.
Quando faccio la scansione di un documento, uso sempre questo sistema, e il risultato è perfetto (la funzione OCR di per sè non mi interessa, perché a seconda della qualità del testo scansionato può rivelarsi molto imprecisa). Il limite di questo sistema è costituito dal fatto che in mancanza di testo la pagina viene lasciata com'è.
Big fan of ƎlectroYou
Avatar utente
Foto UtenteFranco012
4.794 3 3 7
G.Master EY
G.Master EY
 
Messaggi: 2078
Iscritto il: 8 ago 2015, 19:40
Località: Sardegna

0
voti

[6] Re: Riconoscere le righe storte e raddrizzarle

Messaggioda Foto UtenteDavideDaSerra » 17 ott 2021, 18:08

Sei sicuro di avere singole "righe" storte e non l'intero foglio?
Se è il foglio che è stato scansionato "un po' ruotato", in questo caso dovresti solo trovare la rototraslazione adeguata.

Trovi un parallelogramma che contiene tutto il corpo del testo e lo "proietti" su un rettangolo dai bordi ortogonali (in realtà modificherai opportunamente la matrice per mantenere solo i termini rotazionali così da non distorcere le dimensioni)
Avatar utente
Foto UtenteDavideDaSerra
188 1 5
Expert
Expert
 
Messaggi: 265
Iscritto il: 21 gen 2018, 18:41

0
voti

[7] Re: Riconoscere le righe storte e raddrizzarle

Messaggioda Foto Utentealev » 17 ott 2021, 19:07

DavideDaSerra ha scritto:Sei sicuro di avere singole "righe" storte e non l'intero foglio?
Se è il foglio che è stato scansionato "un po' ruotato", in questo caso dovresti solo trovare la rototraslazione adeguata.

Io ho inteso che la domanda di @Piercarlo fosse per i PDF già scansionati storti, quindi con poche possibilità di raddrizzarli a meno di non ri-scansionare le pagine storte
Avatar utente
Foto Utentealev
4.686 2 9 12
free expert
 
Messaggi: 5202
Iscritto il: 19 lug 2010, 14:38
Località: Altrove

0
voti

[8] Re: Riconoscere le righe storte e raddrizzarle

Messaggioda Foto UtenteDavideDaSerra » 17 ott 2021, 19:26

Se la pagina è stata scansionata tutta "un po' girata" sul piano dello scanner, basta ruotare l'immagine di qualche grado per rendere le righe "orizzontali", più o meno lo stesso dell'usare "visualizza -> ruota la visualizzazione" in Acrobat. E con l'algoritmo descritto è automatizzabile senza troppo sforzo trovare tale angolo.
Avatar utente
Foto UtenteDavideDaSerra
188 1 5
Expert
Expert
 
Messaggi: 265
Iscritto il: 21 gen 2018, 18:41

6
voti

[9] Re: Riconoscere le righe storte e raddrizzarle

Messaggioda Foto Utentexyz » 18 ott 2021, 1:06

In rete si trovano diversi programmi che esaminano le immagini e le raddrizzano. Ad esempio questo che usa la libreria OppenCV:

https://github.com/andrewdcampbell/Open ... nt-Scanner
https://github.com/alessandrozamberletti/docdetect
https://github.com/5starkarma/document-scanner

Quelli più recenti si basano sull'intelligenza artificiale come questi:

https://github.com/VishalS99/AutoAlignNN
https://developer.nvidia.com/blog/detec ... -the-odtk/
Avatar utente
Foto Utentexyz
6.761 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1751
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[10] Re: Riconoscere le righe storte e raddrizzarle

Messaggioda Foto UtentePiercarlo » 18 ott 2021, 10:23

DavideDaSerra ha scritto: Trovi un parallelogramma che contiene tutto il corpo del testo e lo "proietti" su un rettangolo dai bordi ortogonali (in realtà modificherai opportunamente la matrice per mantenere solo i termini rotazionali così da non distorcere le dimensioni)


Ecco, bravo, come si fa? Tieni conto che il computer lo deve fare DA SOLO una volta datogli il comando...
Avatar utente
Foto UtentePiercarlo
22,6k 6 10 13
G.Master EY
G.Master EY
 
Messaggi: 6246
Iscritto il: 30 mar 2010, 19:23
Località: Milano

Prossimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti