I am leaving this project here for now. The majority of the work has been done to extract the critical information of a QR code - it is reported in the text box to the right of the qr code image (version information + interpreting it, format information + interpreting it, length of the message, and the message itself. No Reed Solomon error correction applied as yet.
The project expects a "perfect" QR code i.e more or less square (it will tolerate width/height distortion to a certain degree but not perspective distortion), black pixels and a white background.
Theoretically this project is capable to extract a message from any "perfect" 8-bit-byte mode QR code as long as what the image is of sufficient size:
1. version 1 to version 40
2. masking pattern 0 to 7
3. Error Level L, M, Q, and H
The code in the project is quite tolerant towards a distortion of the image in the x and y directions. I have added two spinners (selecting x and y dimensions respectively), the values of which can be changed, to test the "readability" of the QR Code by applying x and/or y distortions based on the selections of the spinners. The code assumes the QR code to be a "perfect" rectangle (i.e x=y or x >= y or x <= y). Distortions between the width of the top and the width of the bottom (or the length of the left and the length of the right) are not accommodated as yet in the code.
You need to extract the files in qrcodev21ehm6.zip and qrcodev4elm5.zip into the /files folder of the project (files were too big to add to the zipped project). This is the png files that the project makes use of (hope they are all in the zipped files - if not, let me know and I will post those that are missing)
Click on the QR code image to cycle through the various QR codes. Enable the checkbox to see the points inside the QR code that are read to extract the binary string that is then used to decode the data/information from.
Attachments
Last edited: