Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

765
Views
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.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

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.
over 4 years ago · Santiago Trujillo Report

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.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!