Domanda

Ho 55 000 file di immagini (sia in formato JPG o TIFF), che sono immagini da un libro.

La struttura di ogni pagina è questa:

  

un testo

     

--- (linea orizzontale) ---

     

un numero

     

un testo

     

--- (linea orizzontale) ---

     

un altro numero

     

un testo

Ci possono essere da zero a 4 righe orizzontali su una data pagina.

Ho bisogno di trovare quello che è il numero, appena sotto la linea orizzontale.

MA, numeri rigorosamente susseguono, a partire da uno in prima pagina, così al fine di trovare il numero, non ho bisogno di leggerlo: ho potuto solo rilevare la presenza di linee orizzontali, che dovrebbe essere sia più facile e più sicuro che cercare di OCR pagina per rilevare i numeri.

L'algoritmo sarebbe, in fondo:

for each image
  count horizontal lines
  print image name, number of horizontal lines
  next image

La domanda è: quale sarebbe la migliore libreria di immagini / lingua a fare la parte "contare le righe orizzontali"

?
È stato utile?

Soluzione

Probabilmente il modo più semplice per individuare le linee sta usando il trasformata di Hough in OpenCV (che ha wrapper per molte lingue) .

La trasformata di Hough OpenCV rileverà tutte le linee in immagine e restituire loro angoli e iniziare coordinate / arresto. Si dovrebbe tenere solo quelli i cui angoli sono vicini a orizzontale e di lunghezza adeguata.

della O'Reilly Learning OpenCV spiega in dettaglio ingresso e uscita della funzione (p.156).

Altri suggerimenti

Se si dispone di un buon contrasto, provare a eseguire i componenti collegati e analizzare il risultato. Può essere un'alternativa a trovare linee attraverso Hough e coprire il caso in cui gli elementi strutturati sono un po 'curva o un algoritmo di linea raccoglie le linee che non si desidera per pick up.

Componenti Connected è un algoritmo super veloce due scansione raster e vi darà una maschera con tutti voi elementi collegati in esso contrassegnato con etichette diverse e rappresentato. Puoi scartare nulla a corto (in termini di proporzioni). Nel complesso, questo può essere più generale, più veloce, ma probabilmente un po 'più complessa di corsa trasformata di Hough. La trasformata di Hough invece sarà più tollerabile per manufatti contrasto e anche lacune accidentali nelle linee. OpenCV ha le findContours function () che trovano componenti per voi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top