Página de Android / borde detectar y transformar la página. Convertir a B / N tiff

Probablemente no está buscando una solución, pero busca orientación sobre esto. Esto es para implementar "escáner de documentos" en nuestra aplicación para Android.

Necesito hacer precisamente esto:

  1. Tomar la imagen con la cámara (no hay problema)
  2. Detectar los bordes / esquinas de la página (???)
  3. Permitir al usuario mover / ajustar esquinas (no hay problema)
  4. Transforma la imagen para que sea rectángulo (???)
  5. Convertir imagen a B / W TIFF o algún otro formato adecuado para la transmisión a través de la red móvil (compacto, bit por píxel) (???)

Lo que intenté. Intentamos usar Open CV. Es enorme, hay NDK. Configuración e infraestructura bastante compleja.

¿Hay algo más ligero y diseñado para esta tarea? Incluso comercial podría estar bien.

Sólo buscando sugerencias sobre cómo abordar esto .. El principal problema es detectar bordes y transformar creo.

No sé de ninguna biblioteca que se encargará de esto para usted, pero he encontrado algunos proyectos de código abierto que lograr un resultado similar. La mayoría se basan en la biblioteca OpenCV y / o en el SDK de OpenCV4Android . Estos son algunos proyectos notables:

  • Demostración de Android Scanner
  • Escáner de documentos simple
  • Escáner de documentos

Otra biblioteca similar es la API Mobile Vision de Google, que contiene una API de reconocimiento de texto . Aunque esto no le permitirá convertir un documento en una imagen en blanco y negro, le permitiría convertir un documento en texto sin formato.

En cuanto a la conversión de la imagen para su transmisión a través de una red; Android no admite de forma nativa el formato de archivo TIFF, aunque hay al menos una biblioteca que manejará esta conversión para usted. Android soporta nativamente la compresión de una imagen como JPEG, PNG o WEBP , que puede utilizar para enviar datos a través de la red como una cadena codificada:

ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream); byte[] bytes = outputStream.toByteArray(); String encodedImage = Base64.encodeToString(bytes, Base64.DEFAULT); 
  • Abrir una imagen en la Galería incorporada de Android
  • Reconocimiento de imágenes para la aplicación Android de realidad aumentada
  • Recorta la imagen sin OutOfMemory - Android
  • Combinación de CoverFlow y Universal Image Loader
  • Recorte de imágenes en Droid X establece la imagen resultante como fondo de pantalla
  • Obtener el nombre de la imagen de la imagen seleccionada de la galería en android
  • Android: crear área de clic en la vista de imagen
  • Mover la vista Galería a la siguiente imagen en un golpe en Android?
  • Cómo agregar una imagen en el cuerpo del correo electrónico
  • ¿Guardar el contenido de la web para la navegación sin conexión?
  • Envío de flujo de imágenes por problema de socket: Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.