Estoy trabajando en una aplicación que necesita convertir la imagen jpeg a texto para que pueda identificar el texto escrito allí en la imagen. Por favor dame una guía para hacer eso.android: Extraiga el texto de la imagen
Respuesta
EXTRACTO DE Making OCR app using Tesseract.
Nota: Estas instrucciones son para Android SDK r19 y Android NDK R7C. En Ubuntu de 64 bits, es posible que deba instalar la biblioteca de compatibilidad ia32-libs de 32 bits. También necesitarías las variables de PATH apropiadas añadidas.
Descarga la fuente o copia esta git repository. Este proyecto contiene herramientas para compilar las bibliotecas Tesseract, Leptonica y JPEG para su uso en Android. Contiene un proyecto de biblioteca Eclipse Android que proporciona una API Java para acceder a las API compiladas de Tesseract y Leptonica. No necesitas ojos, dos códigos, puedes prescindir de ellos.
construir este proyecto utilizando estos comandos (aquí, Tess-dos es el directorio dentro Tess de dos - el que está en el mismo nivel que de Tess y dos de prueba):
cd <project-directory>/tess-two
ndk-build
android update project --path .
ant release
Ahora importar el proyecto como una biblioteca en Eclipse.
File -> Import -> Existing Projects into workspace -> tess-two directory<code>. Right click the project, Android Tools -> Fix Project Properties. Right click -> Properties -> Android -> Check Is Library
Configure su proyecto para utilizar el proyecto de dos Tess como un proyecto de biblioteca:
Right click your project name -> Properties -> Android -> Library -> Add, and choose tess-two.
Ahora está listo a OCR cualquier imagen usando la biblioteca.
Primero, necesitamos obtener la imagen. Para eso, encontré un código simple para capturar la imagen aquí. Después de tener el mapa de bits, solo necesitamos realizar el OCR, que es relativamente fácil. Esté seguro de corregir el tipo de rotación y la imagen haciendo algo como:
// _path = path to the image to be OCRed
ExifInterface exif = new ExifInterface(_path);
int exifOrientation = exif.getAttributeInt(
ExifInterface.TAG_ORIENTATION,
ExifInterface.ORIENTATION_NORMAL);
int rotate = 0;
switch (exifOrientation) {
case ExifInterface.ORIENTATION_ROTATE_90:
rotate = 90;
break;
case ExifInterface.ORIENTATION_ROTATE_180:
rotate = 180;
break;
case ExifInterface.ORIENTATION_ROTATE_270:
rotate = 270;
break;
}
if (rotate != 0) {
int w = bitmap.getWidth();
int h = bitmap.getHeight();
// Setting pre rotate
Matrix mtx = new Matrix();
mtx.preRotate(rotate);
// Rotating Bitmap & convert to ARGB_8888, required by tess
bitmap = Bitmap.createBitmap(bitmap, 0, 0, w, h, mtx, false);
}
bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);
Ahora tenemos la imagen del mapa de bits, y simplemente podemos usar el TessBaseAPI para ejecutar el OCR gusta:
TessBaseAPI baseApi = new TessBaseAPI();
// DATA_PATH = Path to the storage
// lang = for which the language data exists, usually "eng"
baseApi.init(DATA_PATH, lang);
// Eg. baseApi.init("/mnt/sdcard/tesseract/tessdata/eng.traineddata", "eng");
baseApi.setImage(bitmap);
String recognizedText = baseApi.getUTF8Text();
baseApi.end();
(You can download the language files from [here][2] and put them in a directory on your device – manually or by code)
Ahora que tienes el texto OCRed en la variable recognitedText, puedes hacer prácticamente cualquier cosa con él: ¡traducir, buscar, cualquier cosa! PD. Puede agregar compatibilidad de varios idiomas teniendo una preferencia y luego descargando el archivo de datos de idioma requerido desde here. Incluso puede ponerlos en la carpeta de activos y copiarlos en la tarjeta SD al inicio.
Solución de problemas
- Acerca de la actualización PATH - Es necesario actualizar la variable PATH para los comandos a la función, de lo contrario se vería un comando no se encuentra el error. Para Android SDK, agregue la ubicación de las herramientas del SDK y los directorios de herramientas de plataforma a la variable de entorno PATH. Para Android NDK, use el mismo proceso para agregar el directorio android-ndk a la variable PATH.
- Maven-ising - Compruebe esto post por James Elsey. También menciona que lo consiguió trabajando en Windows sin ningún problema.
- También puede intentar Ctrl + F-ing su problema en esta página, alguien podría haberlo encontrado y publicado una solución en los comentarios.
No escribió esto; indique claramente que lo ha copiado de la publicación del blog (para lo cual agregó el enlace) para evitar que se lo tome como plagio. – laalto
Antes solía publicar los enlaces de inmediato, pero un miembro de Stack Overflow fue quien me dijo que pusiera los datos de cualquier enlace en respuesta en caso de que el enlace no funcionara. – Confuse
Sí. No publique respuestas solo de enlace. No publiques contenido de otras personas como propio. – laalto
- 1. Android Texto sobre la imagen
- 2. Extraiga la tabla de DOCX
- 3. Extraiga el texto de las URL con TIKA
- 4. Extraiga la imagen del PDF utilizando .Net C#
- 5. Android ¿Agregar imagen a texto (en vista de texto)?
- 6. Extraiga el texto por página con Python PDFMiner?
- 7. Cómo configurar el texto del botón de imagen (Android)?
- 8. Botón con texto Y una imagen (Android)
- 9. ¿Traducir una imagen a texto en Android?
- 10. Extraiga texto e imágenes de PDF utilizando iText5
- 11. Android: la interfaz de usuario para el texto ajusta una imagen
- 12. Localización de texto dentro de la imagen
- 13. Android: imagen sobre imagen
- 14. Extraiga el nombre de dominio de la URL en C#
- 15. ¿Cómo detectar el área de texto de la imagen?
- 16. Extraiga números de una cadena alfanumérica con android
- 17. ¿Alineación de imagen en el texto?
- 18. ¿Poner imagen de fondo sobre el texto?
- 19. Image Magick - Convertir texto en imagen - ¿hay alguna manera de centrar el texto en el centro de la imagen?
- 20. Cómo detectar orientación de la imagen (texto)
- 21. Leyendo el texto de una imagen
- 22. Leer el texto de la imagen iPhone SDK
- 23. Texto flotando en el bloque al lado de la imagen
- 24. Superposición de texto sobre la imagen utilizando el posicionamiento relativo
- 25. Java Regex - Extraiga Hashtags de la cadena
- 26. botón de imagen de Android
- 27. Problema del adaptador simple, texto + imagen en spinner. Java, Android
- 28. byte [] a la imagen android
- 29. Eliminar la imagen de una vista de imagen Android
- 30. Android: Detener la reducción de la imagen
posible duplicado de [androide OCR?] (Http://stackoverflow.com/questions/1106202/android-ocr) – EboMike
Google lanzó recientemente una API de OCR para lograrlo: https://developers.google.com/vision/text-overview – Wirling