2011-10-10 14 views
13

He buscado en la red por un par de horas. Recibí muchas respuestas diciendo que necesitamos usar NDK, etc. para "Tesseract" para WINDOWS.¿Cómo puedo usar Tesseract en Android?

Pero no recibí ninguna explicación paso a paso/adecuada de lo que se debe hacer cuando se instala NDK. ¿Cómo obtener los archivos .so? He terminado de instalar NDK y Cygwin. Para verificar si está hecho correctamente, ingresé make -v y dio el resultado esperado.

¿Alguien que haya usado "Tesseract" me dice cómo lo han hecho? (he descargado "Mezzofanti", pero no encontré ninguno de los archivos "Tesseract")

Respuesta

13

Puede remitir a este documento, Lo da paso a paso Pero lo que debe hacer es configurarlo el proyecto tesseract-android-tools se proyecta como un proyecto de biblioteca en Eclipse y le dice a su proyecto que se refiera al proyecto de la biblioteca. Por lo que tendrá dos proyectos en Eclipse,

http://rmtheis.wordpress.com/2011/08/06/using-tesseract-tools-for-android-to-create-a-basic-ocr-app/

espero que esto ayuda .....

+0

He realizado los cambios en mi pregunta ... Lo necesito para WINDOWS XP OS. – Pallavi

+0

Revisé el mensaje "LÉAME" pero está dando un error "Clonación en libjpeg ... android.git.kernel.org [0: 149.20.4.77]: errno = No hay ruta al host fatal: no se puede conectar un socket (No hay ruta al host) "después de este paso", git clone git: //android.git.kernel.org/platform/external/jpeg.git libjpeg "en el archivo Léame – Pallavi

+0

Problema encontrado: este es el espejo alternativo" https: //github.com/android/platform_external_jpeg " – Pallavi

11

Es necesario utilizar tess-two proyecto para trabajar con Tesseract en Android.
El tess-two contiene herramientas para compilar las bibliotecas Tesseract y Leptonica para su uso en la plataforma Android. Proporciona una API de Java para acceder a las API compiladas de Tesseract y Leptonica.

La adición de dos Tess a su proyecto:

añadir a build.gradl e:

dependencies { 
    compile 'com.rmtheis:tess-two:5.4.1' 
} 

El uso de Tesseract

import com.googlecode.tesseract.android.TessBaseAPI; 
//... 

private String extractText(Bitmap bitmap) throws Exception 
{ 
    TessBaseAPI tessBaseApi = new TessBaseAPI(); 
    tessBaseApi.init(DATA_PATH, "eng"); 
    tessBaseApi.setImage(bitmap); 
    String extractedText = tessBaseApi.getUTF8Text(); 
    tessBaseApi.end(); 
    return extractedText; 
} 

Puede buscar en mi simple one-class example of using Tesseract for Android. Contiene solo 200 líneas de código Java.

+1

¡Agradable! Debería apuntar a la API 22 en su lugar porque su aplicación no solicita [permisos de tiempo de ejecución] (https://developer.android.com/training/permissions/requesting.html) del usuario. – rmtheis

+0

Tratando de aclarar un poco de duda.Creo que el OCR consume mucha CPU, ¿no cree que realizar OCR en los dispositivos de mano del usuario puede hacer que sus dispositivos sean lentos? Creo que preformar el OCR a nivel de servidor y luego volver al usuario con información sería genial. Qué piensas ? – Lokesh

+0

@Lokesh Sí, tienes razón. OCR lleva tiempo. Funcionará 3 veces más rápido en el servidor. –

Cuestiones relacionadas