Limitar caracteres que tesseract está buscando


¿Es posible limitar el conjunto de caracteres que tesseract está buscando (por ejemplo, buscar solo las letras a-z)? Eso mejoraría mis resultados grandemente.

Author: Danilo Bargen, 2010-03-02

4 answers

Crear un archivo de configuración (por ejemplo, "letras") en el directorio tessdata / configs-normalmente /usr/share/tesseract/tessdata/configs
o
/usr/share/tesseract-ocr/tessdata/configs

Y añade esta línea al archivo de configuración:

tessedit_char_whitelist abcdefghijklmnopqrstuvwxyz  

...o tal vez [a-z] funciona.. no sé: -)
Entonces llame a teseracto similar a esto:

tesseract input.tif output nobatch letters  

Eso limitará tesseract a reconocer solo los caracteres deseados

 72
Author: Blomman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-01-25 00:24:01

Además del archivo de configuración, es la bandera -c:

tesseract stdin stdout -c tessedit_char_whitelist=abcdefghijklmnopqrstuvwxyz -psm 6
 14
Author: jmunsch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-08 09:34:36

Para usar la lista blanca en un archivo de configuración o usando el conmutador de línea de comandos -c tessedit_char_whitelist=..., en la versión 4.0 más reciente tendrá que establecer el modo de motor OCR en "Original Tesseract only". Esto se debe a que el nuevo modo "Neural nets LSTM" no respeta la configuración de la lista blanca. Ejemplo de línea de comandos adecuada para la versión 4.0:

Tesseract input_file output_file oem oem 0-c tessedit_char_whitelist = abc123

 5
Author: Bartłomiej Uliasz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-28 13:39:43

Simplemente agregando esto para cualquiera que use tesseract en Android. En su función readOCR donde establece el idioma, etc. añádase la siguiente línea;

tesseract.setVariable("tessedit_char_whitelist","ABCDEFGHIJKLMNOPQRSTUVWXYZ");

También puede hacer una lista negra de caracteres para excluir.

 4
Author: user3244591,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-21 13:03:11