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-0.0.33.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-0.0.33-py3-none-any.whl (33.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: partial_qr-0.0.33.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-0.0.33.tar.gz
Algorithm Hash digest
SHA256 ecc8be835cb0e7ae04b933a72d63a8025a2ce907abe42c5ad74422aa526175ff
MD5 2b2829a9e4efbc8045a72da6b4ada5f5
BLAKE2b-256 0bd3d3011a75a40877275864ad5d90e5a3081bea962896bdddd6b0298451679e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: partial_qr-0.0.33-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-0.0.33-py3-none-any.whl
Algorithm Hash digest
SHA256 f2e177c8df94df7d12d6d0f1ce9e514881de98d8f7b8e2ccc342d6a4e569354d
MD5 b00955bea5d3799e9f6589fe0f293022
BLAKE2b-256 cf845aa686fa77b1e1a834ea343380a64a6a0acdab87a1ccb50f7b5aff52792d

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