tutorial tessedit_char_whitelist studio library example code ocr tesseract

tessedit_char_whitelist - tesseract ocr c#



Limitar caracteres que tesseract está buscando (4)

Además del archivo de configuración, está el indicador -c :

tesseract stdin stdout -c tessedit_char_whitelist=abcdefghijklmnopqrstuvwxyz -psm 6

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


Para usar la lista blanca en un archivo de configuración o con el interruptor de línea de comando -c tessedit_char_whitelist=... , en la versión más reciente 4.0, deberá configurar el modo del motor OCR en "Original Tesseract only". Esto se debe a que el nuevo modo "Redes neuronales 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 0 -c tessedit_char_whitelist = abc123

ACTUALIZACIÓN: En las versiones más nuevas (4.0) hay eng.traineddata archivo eng.traineddata instalado de forma predeterminada por Windows y algunos instaladores de Linux. La solución temporal es reemplazar el archivo tessdata/eng.traineddata con uno de la versión anterior. Este archivo debe ser de unos 30 MB. De lo contrario, aparecerá el error: "¡Tesseract no pudo cargar ningún idioma!" o similar.


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

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

También puede hacer una lista negra para que los caracteres se excluyan.


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

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

tessedit_char_whitelist abcdefghijklmnopqrstuvwxyz

... o tal vez [az] funciona ... no sé :-)
Entonces llama a tesseract similar a esto:

tesseract input.tif output nobatch letters

Eso limitará el tesseract para reconocer solo los caracteres deseados.