Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

383
Vistas
El escaneo de código de barras del kit ML no detecta códigos QR en la foto de la pantalla del monitor

Estoy usando com.google.mlkit:barcode-scanning:17.0.2 para detectar códigos QR en las imágenes.

Después de obtener el URI de la galería, creo InputImage y luego proceso esta imagen con BarcodeScanner para encontrar códigos QR. Cuando selecciono una foto de códigos QR en papel, se encuentra el código. Pero cuando tomo una foto del código QR en la pantalla del monitor, nunca se encuentra el código. ¿Qué debo hacer para poder detectar un código QR en una foto de la pantalla de un monitor?

(Cuando uso el mismo escáner con CameraX para hacer una detección de código QR en vivo, encuentra el código en la pantalla del monitor)

 val image = InputImage.fromFilePath(context, uri) val scanOptions = BarcodeScannerOptions.Builder() .setBarcodeFormats( Barcode.FORMAT_QR_CODE, ) .build() val scanner = BarcodeScanning.getClient(scanOptions) scanner.process(image) .addOnSuccessListener { val code = it.getOrNull(0)?.rawValue if (code == null) { // code NOT found } else { // code was found } }

Ejemplo de código QR en papel que se encuentra

ingrese la descripción de la imagen aquí

Ejemplo de código QR en la pantalla del monitor que NO se encuentra

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Lo más probable es que estés luchando contra el efecto Moiré . Dependiendo del algoritmo de detección QR, las altas frecuencias introducidas por el efecto Moiré pueden desviar el detector de su camino. De manera frustrante, a menudo son los mejores detectores de códigos QR los que son derrotados por los patrones de Moiré.

Una buena solución es:

  • toma la foto a la mayor resolución que puedas
  • realizar un desenfoque de la imagen
  • aumentar el contraste al máximo, si es posible
  • (opcionalmente) ejecute un umbral sigma, o simplemente reescriba todos los píxeles con un componente de luminancia por debajo de 32 a 0, todos aquellos por encima de 224 a 255.

Otra forma de hacer aproximadamente la misma operación es

  • toma la foto a la mayor resolución que puedas
  • aumentar el contraste al máximo, si es posible
  • reduce la resolución de la imagen a una resolución que es mucho más baja

El segundo método da peores resultados, pero normalmente se puede implementar con primitivas de dispositivo.

Otra fuente de problemas con los monitores (no en su imagen por lo que puedo ver) es la frecuencia de actualización. A veces, encontrará que el código QR es en realidad un código QR sobreexpuesto en la mitad superior de la imagen y un código QR subexpuesto en la mitad inferior de la imagen. Tampoco son reconocidos. Este efecto se debe a la estrategia y frecuencia de actualización del monitor y no es fácil de resolver: puede probar a bajar la luminosidad del monitor para aumentar el tiempo de exposición, hasta que supere 1/50 o 1/25 de segundo, o tomar la foto desde más lejos. de distancia y utilice el zoom digital. Los monitores modernos tienen frecuencias de actualización más altas y, de hecho, se actualizan más allá de su propio tiempo de permanencia, por lo que esto no debería suceder; con monitores analógicos antiguos, sin embargo, siempre sucederá .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda