Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

381
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda