Skip to main content

Partial QR Code Decoder

Project description

Partial QR Code Decoder

An aggressive QR code decoder that can recover data from partially missing or damaged QR codes.

Usage

partial-qr --input path/to/qr_code_matrix.txt

The input must be either a text file, containing a matrix of characters, or an image file.

When the input is a text file, the content must be a grid of characters, where each character is one of:

  • #, X, 1 - representing a black module
  • , ., 0 - representing a white module
  • ? - representing the unknown cells that the decoder will try to recover

When the input is an image file, the program will try to detect the size of the QR code, but it can sometimes misdetect it, and in that case, the --qr-version option can be used to specify the version of the QR code (1-40). The image must only contain the QR code, in a well-aligned grid with no perspective distortion. Recognizing QR codes from photographs or heavily distorted images is not in the scope of this project, and will not be supported. Each cell in the QR image must be close to a solid black, solid white, or middle gray color, and the program will classify them as black, white, or unknown based on a simple thresholding of the lightness.

If the input is too corrupted, bruteforce strength can be increased, but beware of the exponential runtime increase, especially for higher versions:

partial-qr --input path/to/qr_code_matrix.txt --max-brute-bits 24

Additional hints can be provided to the bruteforce to speed it up:

--ascii - Assume the data is ASCII, which reduces the search space significantly.

--url - Assume the data is a URL, so it must start with either http:// or https://.

--parallel - Enable parallel bruteforce using all available CPU cores.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

partial_qr-1.0.0.tar.gz (29.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

partial_qr-1.0.0-py3-none-any.whl (33.4 kB view details)

Uploaded Python 3

File details

Details for the file partial_qr-1.0.0.tar.gz.

File metadata

  • Download URL: partial_qr-1.0.0.tar.gz
  • Upload date:
  • Size: 29.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for partial_qr-1.0.0.tar.gz
Algorithm Hash digest
SHA256 8cf9e1a3651ea06b4da139e67281cdb9e9330da6495addc6e7238306d186d865
MD5 573f990ac988ce416cb4a548956e3211
BLAKE2b-256 ee638cb7d62d000220c0857ab9848e7495a25ea6bc39a1c259818a4c156b9cd1

See more details on using hashes here.

File details

Details for the file partial_qr-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: partial_qr-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 33.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for partial_qr-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1d1704f59b9142975dd0bad74f761d8154dd16031bd3ae11980ef3f7e0ae0cfe
MD5 545f3273aef770869083e6a5bf20fe8e
BLAKE2b-256 bc6f9620915c86055b6c5f22f5ded556f18f7cb6e72aed5911fe9c7f70e8c3c2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page