Cómo leer varios códigos qr de una imagen usando la biblioteca zxing
Actualmente estoy desarrollando un escáner que lee varios códigos QR encontrados en una imagen. Consigo leer los códigos QR en la imagen, pero me está dando resultados inconsistentes. Suponiendo que hay 4 códigos QR en la imagen, a veces puedo leer 2 ya veces 3 o sólo 1. A diferencia del escáner original (escáner ZXing), se decodifica rápidamente. Mientras que en mi caso, tengo que asegurarse de que hay suficiente luz y la imagen no está borrosa para decodificarlo.
Estoy utilizando el QRCodeMultiReader
para decodificar la imagen. Actualmente, utiliza la biblioteca de ZXing
para crear la aplicación.
- Zxing usando diseño personalizado
- Crear un código QR y mostrarlo en ImageView
- Escanear códigos de barras múltiples con ZXing
- Cómo decodificar datos utilizando Zxing C ++
- ¿Cómo mostrar un código de barras 1-D de cadena en Android?
A continuación se muestra el fragmento de mi código:
public void onPictureTaken(byte[] data, Camera camera) { BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inMutable = true; Bitmap bitmap = BitmapFactory .decodeByteArray(data, 0, data.length, opt); Hashtable<DecodeHintType, Object> hints = new Hashtable<DecodeHintType, Object>(); hints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE); LuminanceSource source = new RGBLuminanceSource(bitmap); QRCodeMultiReader multiReader = new QRCodeMultiReader(); Result[] results = multiReader.decodeMultiple(new BinaryBitmap( new HybridBinarizer(source)), hints); }
- Escaneo de código QR desde un archivo de imagen
- Cómo obtener un error de cámara en la aplicación de código de barras de Zxing
- ZXing en Android PDF417
- Agregar menú a ZXings barcodescanner, y apretar la vista de superficie
- Cómo reiniciar la cámara de manera eficiente en un fragmento - Barcode Scanner
- ¿Cómo puedo codificar caracteres usando UTF-8 en un código QR usando el proyecto Zxing?
- Zxing Android - ¿Cómo obtener escáner / cámara no en pantalla completa?
- El uso del escáner de código de barras de Zxing causa la excepción de seguridad
Hola, por favor, compruebe en la aplicación de escáner de código de barras Zxing que tiene opción en Configuración para escanear códigos de barras a granel para que lo habilite y comprobarlo u puede leer varios códigos QR a la vez de una o más imágenes y también comprobar el código fuente de la biblioteca Zxing a Conocido La información detallada.
He creado una aplicación para la cámara que he utilizado intent
como la aplicación de cámara por defecto está allí con todos los sistemas operativos Andriod y, en general, están mejor optimizados para ese dispositivo de escribir una aplicación genérica de la cámara que sería optimizado para su teléfono sólo … por lo que Mejor uso de la cámara.
Para extraer múltiples QR de una sola imagen he probado el código de abajo.
Pero los resultados no son consistentes algún tiempo me dan 1 o 2 o 3 de 4 algún tiempo ninguno …. no es su solución perfecta
if(photo == null) return; Bitmap ScaledQr = null; ScaledQr = Bitmap.createScaledBitmap(photo, 640,480, false); BinaryBitmap Qr = BitMap2BinayBitmap(ScaledQr); Result [] kpResultMulti = null; Result kpResultSingle = null; Hashtable<DecodeHintType, Object> hints = new Hashtable<DecodeHintType, Object>(); hints.put(DecodeHintType.TRY_HARDER, true); //hints.put(DecodeHintType.PURE_BARCODE, true); try { kpResultMulti = kpReaderArr.decodeMultiple(Qr,hints); } catch (NotFoundException e) { // TODO Auto-generated catch block msbox("Exception","NotFoundException"); e.printStackTrace(); } if(kpResultMulti != null){ msbox("Total Result" ,kpResultMulti.length +"");// + photo.getWidth() + "Height=" + photo.getHeight()); for(Result kp : kpResultMulti) { msbox("Results",kp.getText()); } }
- Unidad Método de prueba que no contiene lambda expresión Android Studio
- Analizar la memoria instantánea hprof archivos de índice programmically