¿Cómo hacemos la lectura programática de un código de barras capturado con la cámara de un teléfono móvil? Por ejemplo, ¿cómo se usa iPhone o Android o Java ME? ¿Necesitamos hardware separado para leer el código de barras o podemos hacer manipulación de imágenes?Lectura de código de barras utilizando una imagen tomada con la cámara del teléfono móvil
Respuesta
Google ha hecho esto INCREÍBLEMENTE simple con sus bibliotecas Zebra Crossing. Tienen soporte para hacer exploración a través de las imágenes en las siguientes plataformas:
- J2SE
- Android
y otros han portado a:
- J2ME
- CSharp
- CPP
- Lamer
- iPhone
- Bug
Como otro cartel ya se ha mencionado, en Android también se puede utilizar un Intent llamar código de barras lector con algo como:
public Button.OnClickListener mScan = new Button.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "ONE_D_MODE");
startActivityForResult(intent, 0);
}
};
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
}
Obviamente es posible leer el código de barras de una imagen de él. Probablemente necesite pensar en problemas como
- Orientación; tal vez la foto no sea directa, por lo que las barras no son verticales. Además, podría estar al revés ...
- Enfoque; ¿y si el disparo es borroso? Probablemente exista un límite donde sea imposible interpretarlo de manera segura.
- Recortada; ¿Qué sucede si el encuadre es malo, por lo que el código completo ni siquiera está en la imagen?
Hay muchos proyectos y productos existentes que resuelven esto ... Here is one, por ejemplo. Algunas soluciones parecen no ser muy sensibles a los puntos anteriores, pero afirman poder encontrar y reconocer códigos de barras independientemente de la orientación y ubicación de la imagen, por ejemplo.
Para Android es muy fácil. Simplemente use el servicio proporcionado por la aplicación Barcode Scanner (dependencia). Luego, la aplicación Barcode Scanner manejará toda la parte de escaneo y simplemente le devolverá el código.
Creo que hay soluciones similares disponibles para otras plataformas, pero en Android es aún más fácil debido a su arquitectura de intención.
Los códigos de barras se pueden leer a través del análisis de las cámaras de los teléfonos.
Una complicación bien conocida es que las cámaras de foco fijo (como en los iPhones 2G/3G anteriores y algunos Androids) no pueden tomar instantáneas enfocadas en distancias cortas. Para contrarrestar eso, se deben usar algoritmos especiales de "desconvolución", y la última vez que verifiqué esto no fue parte del cruce de cebra.
Algunos han implementado soluciones: conozco las siguientes aplicaciones para iPhone que pueden leer UPC con cámara de foco fijo: pic2shop (Benoit Maison/Vision Smarts), RedLaser (Occipital) y ShopSavvy (grande en Japón) - consultar y creo que todos ellos tienen SDK disponibles para terceros interesados.
Recomiendo elegir una solución que también decodifique códigos de barras en imágenes borrosas. Hay muchos teléfonos Android de gama baja que solo tienen cámaras de enfoque fijo y que requieren soluciones de procesamiento de imágenes más sofisticadas que el umbral binario que ofrecen las soluciones de software mencionadas anteriormente. Ejemplos de tales soluciones más avanzadas incluyen redlaser o Scandit barcode scanner SDK.
El Scandit SDK es muy fácil de integrar y viene con una edición comunitaria gratuita. También hay un product API que simplifica la conversión de números de códigos de barras en nombres de productos.
Descargo de responsabilidad: soy uno de los cofundadores de Scandit.
Solo para obtener una actualización de todos los novatos que buscan una respuesta a esta pregunta, Google ahora ofrece Barcode Detection Apis a través de Google Play Services para simplificar el escaneo del código de barras usando la cámara del teléfono. Ya no es necesario depender de Apis de terceros.
- 1. lectura de código de barras desde una imagen usando javascript
- 2. Obtener imagen Uri + miniatura de la imagen tomada con la cámara en Android
- 3. Windows Mobile: usando la cámara del teléfono con C#
- 4. Cómo leer un código de barras desde una imagen
- 5. iOS: Recortar una imagen fija tomada de una cámara UIImagePickerController con superposición
- 6. ¿Cómo puedo encontrar la orientación de una imagen tomada con Intent MediaStore.ACTION_IMAGE_CAPTURE?
- 7. Lectura de código de barras desde la cámara web en la aplicación web PHP
- 8. Uso de PIL para girar automáticamente la imagen tomada con el teléfono celular y el acelerador
- 9. ¿Podemos subir fotos de la cámara del teléfono con HTML5
- 10. Cómo comprimir una imagen tomada por la cámara en iphone sdk?
- 11. Lectura de códigos de barras con Android
- 12. Medición de la intensidad de la señal del teléfono "real" en un teléfono móvil
- 13. Usar la cámara del teléfono, después de capturar la actividad de la imagen no regresa a una actividad particular
- 14. La intención de la cámara devuelve una imagen pequeña
- 15. no terminando la actividad al pasar la imagen de la matriz de bytes tomada por la cámara
- 16. Codificación mediante teléfono móvil
- 17. Imagen de código de barras QR a texto
- 18. lectura desde el escáner de código de barras
- 19. Uso de la cámara web para simular la cámara del teléfono en el emulador WP7
- 20. ¿Incluye un escáner de código de barras en la aplicación web móvil sin ser nativo?
- 21. Configuración del tamaño de imagen de la cámara en Android
- 22. Usar la cámara del teléfono a través de la intención: ¿la actividad nunca vuelve?
- 23. 2d Código de barras vs código de barras 1d: velocidad, precisión, tamaño
- 24. ¿Hay alguna biblioteca de Java para leer los códigos de barras del número vin de la imagen?
- 25. Lectura de código de barras 2D desde imágenes
- 26. Lectura de un código de barras utilizando un escáner de código de barras USB ignorando la entrada de datos del teclado mientras no se conoce el identificador del producto del escáner y la identificación del proveedor
- 27. Longitud del campo del código de barras
- 28. Elija una imagen de la cámara o galería usando el teléfono
- 29. Orientación de cámara/imagen en Android
- 30. La foto tomada con la cámara no contiene ningún metadato ALAsset
el problema con ZXing - la última vez que lo comprobé - era que no funcionaba con cámara de enfoque fijo, que la mayoría de los teléfonos celulares (baratos || iPhone 2G) tenían –