android android-vision text-recognition

android - Ejemplo de API de texto de Google Mobile Vision



android-vision text-recognition (1)

Actualmente estoy escribiendo un código que debería poder ver una imagen de texto y luego extraer el texto de la imagen para dispositivos basados ​​en Android. Hice algunas investigaciones en línea y descubrí que Google proporciona su propia API llamada "Mobile Vision" (un paquete con muchos elementos, es decir, reconocimiento de texto, reconocimiento facial, etc.). Sin embargo, en sus demostraciones solo demuestran reconocimiento de texto en vivo. Me preguntaba si alguien podría darme un ejemplo de reconocimiento de texto en una imagen fija utilizando la API de Mobile Vision. Cualquier ayuda es bienvenida. Gracias.


La documentación de la API de Google Play Services Mobile Vision describe cómo hacer esto, puede usar la clase TextRecognizer para detectar texto en Frames . Una vez que tenga la imagen de mapa de bits, puede convertirla en un marco y procesarla. Vea a continuación un ejemplo.

// imageBitmap is the Bitmap image you''re trying to process for text if(imageBitmap != null) { TextRecognizer textRecognizer = new TextRecognizer.Builder(this).build(); if(!textRecognizer.isOperational()) { // Note: The first time that an app using a Vision API is installed on a // device, GMS will download a native libraries to the device in order to do detection. // Usually this completes before the app is run for the first time. But if that // download has not yet completed, then the above call will not detect any text, // barcodes, or faces. // isOperational() can be used to check if the required native libraries are currently // available. The detectors will automatically become operational once the library // downloads complete on device. Log.w(LOG_TAG, "Detector dependencies are not yet available."); // Check for low storage. If there is low storage, the native library will not be // downloaded, so detection will not become operational. IntentFilter lowstorageFilter = new IntentFilter(Intent.ACTION_DEVICE_STORAGE_LOW); boolean hasLowStorage = registerReceiver(null, lowstorageFilter) != null; if (hasLowStorage) { Toast.makeText(this,"Low Storage", Toast.LENGTH_LONG).show(); Log.w(LOG_TAG, "Low Storage"); } } Frame imageFrame = new Frame.Builder() .setBitmap(imageBitmap) .build(); SparseArray<TextBlock> textBlocks = textRecognizer.detect(imageFrame); for (int i = 0; i < textBlocks.size(); i++) { TextBlock textBlock = textBlocks.get(textBlocks.keyAt(i)); Log.i(LOG_TAG, textBlock.getValue()); // Do something with value } }

También debe asegurarse de incluir la dependencia de la visión móvil en el build.gradle del módulo.

dependencies { compile ''com.google.android.gms:play-services-vision:9.4.0'' }

Y también incluir lo siguiente en el manifiesto de la aplicación para Android.

<meta-data android:name="com.google.android.gms.vision.DEPENDENCIES" android:value="ocr" />