2012-03-09 21 views
13

cómo representar:Tesseract no reconoce los caracteres individuales

  1. crea una nueva imagen con pintura (de cualquier tamaño)
  2. Añadir letra A de esta imagen
  3. tratar de reconocer -> Tesseract no encontrará ninguna cartas
  4. copiar y pegar esta carta 5-6 veces a esta imagen
  5. tratar de reconocer -> Tesseract encontrará todas las letras

¿Por qué?

Respuesta

15

Debe establecer el "modo de segmentación de página" en "solo carácter".

Por ejemplo, en Android hace lo siguiente:

api.setPageSegMode(TessBaseAPI.pageSegMode.PSM_SINGLE_CHAR); 
+0

Gracias! El ajuste 'PageSegMode.SingleChar' solucionó el problema. –

+2

'api.SetPageSegMode (tesseract :: PSM_SINGLE_CHAR);' para usuarios de C++;) – TimZaman

7

¿Has visto esto?

https://code.google.com/p/tesseract-ocr/issues/detail?id=581

lista El error lo muestra como "ya no es un problema".

  • Asegúrese de tener imágenes de alta resolución.
  • Cuando cambie el tamaño de la imagen, asegúrese de mantener un alto DPI y no cambian de tamaño demasiado pequeño
  • Asegúrese de train your tesseract system
  • utilizar el código baseApi.setVariable("tessedit_char_whitelist", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"); antes de la init Tesseract
  • Además, es posible buscar en which font to use with OCR
+0

ver otras respuestas para la solución correcta ... – Nikko

9

Debe establecer el modo de segmentación de páginas de Tesseract en "carácter único".

+1

esto me interesa, puedo pedir que cómo se hace esto? – wlf

+3

Bueno, depende completamente de cómo estés usando tesseract. Si lo llamas desde el shell, dirías 'tesseract $ image $ outbase -psm 10'. -psm establece el modo de segmentación de página, y el modo 10 es para caracteres individuales. Todo está en la página del manual. –