• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

528
Vistas
Decodificar códigos Micro QR con Python

Usé "segno" para crear códigos Micro QR con python:

 import segno segno.make_micro("1").save("1.png", scale=10)

Imagen de salida

¿Alguien sabe de una forma (simple) de decodificarlos con python? No pude encontrar una biblioteca, pero me temo que hacer esto yo mismo (tal vez con openCV) será un gran esfuerzo.

En contraste con esta publicación ( ¿Cómo decodificar una imagen de código QR en Python (preferiblemente puro)? ), Ya instalé con éxito PyQRCode y ZBar. Desafortunadamente, estas bibliotecas no decodifican los códigos Micro QR.

about 3 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Dado que aparentemente el uso de códigos Micro QR no se ha generalizado lo suficiente (¿todavía?) como para agregar soporte para leerlos en cualquier biblioteca que pude encontrar, estaba buscando una solución alternativa. En mi búsqueda encontré uno o dos lectores QR en línea que admiten la decodificación de microcódigos QR. Como recién estoy aprendiendo Playwright para Python , pensé que lo intentaría.

El siguiente código usa playwright para abrir un sitio web decodificador de código QR en línea, haga clic en la página para configurar las opciones correctas, cargue el archivo de imagen y luego lea el resultado de la página.

Soy consciente de que esta es una forma completamente complicada y nadie haría esto en el código de producción, pero fue divertido y funciona :) Aunque no califica como "simple" como solicitó el OP, me temo.

 from playwright import sync_playwright import segno segno.make_micro("1").save("1.png", scale=10) with sync_playwright() as p: browser = p.firefox.launch(headless=False) page = browser.newPage() page.goto('https://www.datasymbol.com/barcode-reader-sdk/barcode-reader-sdk-for-windows/online-barcode-decoder.html') page.querySelector('select[name=\"sr\"]').selectOption([{'label': 'Text'}]) page.querySelector('img[alt=\"QRCode Decoder Scanner Settings\"]').click() page.querySelector('input[name=\"qrmicro\"]').click() page.querySelector('input[id=\"fupload1\"]').setInputFiles('1.png') page.querySelector('input[type=\"button\"]').click() iframe = page.querySelector('iframe[name=\"f2\"]').contentFrame() result = iframe.querySelector('css=pre').innerHTML().rstrip() print(result) browser.close()

huellas dactilares

 1

Algunas notas:

  • si no desea ver la página durante la ejecución, simplemente elimine headless=False .
  • aparentemente, hay una limitación bastante desagradable para usar al menos el servicio que elegí: si el texto que codificas tiene más de dos caracteres, el sitio web cambiará los dos primeros caracteres a ** , por lo que si codificaste One Two Three recuperarás **e Two Three . Esta es una limitación si no crea los códigos de barras usted mismo. Si lo hace, simplemente agregue ** al comienzo de su contenido en primer lugar.
  • si desea utilizar un servicio remoto pero no quiere la forma compleja a través de la interfaz web, existen servicios que ofrecen una API directa que puede utilizar, por ejemplo, con requests . El sitio que elegí arriba aparentemente también ofrece algo así y parece haber un plan gratuito. Pero nunca lo usé, así que no puedo decir nada al respecto.
about 3 years ago · Santiago Trujillo Denunciar

0

PyBoof acaba de actualizarse y ahora admite escanear/leer códigos Micro QR y generarlos también. Vea el código de ejemplo en Github para detectar y crear . A continuación se muestra una copia del código para escanear/detectar:

 import numpy as np import pyboof as pb # Detects all the QR Codes in the image and prints their message and location data_path = "../data/example/fiducial/microqr/image01.jpg" detector = pb.FactoryFiducial(np.uint8).microqr() image = pb.load_single_band(data_path, np.uint8) detector.detect(image) print("Detected a total of {} QR Codes".format(len(detector.detections))) for qr in detector.detections: print("Message: " + qr.message) print(" at: " + str(qr.bounds))

PyBoof es un envoltorio alrededor de BoofCV , por lo que es posible que desee comprobarlo también.

about 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda