What is a QR code?

We have chosen to base our Augmented Reality realization on QR codes.

QR codes were invented by Toyota (the car manufacture) in 1994 as an improvement over traditional barcodes. QR codes were developed to have high data density and to be easy readable (by computers).

A QR code consists of 3 corners (4.1. Position in picture to the right) that allow us to find the correct orientation for the QR code. Then the QR code consists of some data with further structure, which I will ignore here. The actually data of the QR code, i.e. the text, is encoded with error correcting codes inside the QR code.

We use the open source project ZXing (Zebra Crossing) to decode our QR codes. The detect-and-decode loop of ZXing first detect the corners of the QR code, then the image is rotated and stretched (if needed) and finally the contents (the text) of the QR code is decoded.

Reading a line of pixels from a corner of a QR code we first encounter a black dot, then a white dot, then 3 black dots, then a white dot and finally a black dot.
This pattern (1-1-3-1-1) is crucial in detecting a corner of a QR code. The pattern is used by ZXing to detect candidates for corners by counting black and white pixels. These candidates are validated by checking that the pattern is found both vertically and horizontally.

In a future blog I will write about how we have adapted the ZXing approach to suite our Scrum Board needs.

Skriv kommentar

InfinIT er finansieret af en bevilling fra Styrelsen for Forskning og Innovation og drives af et konsortium bestående af:
Alexandra Instituttet . BrainsBusiness . CISS . Datalogisk Institut, Københavns Universitet . DELTA . DTU Compute, Danmarks Tekniske Universitet . Institut for Datalogi, Aarhus Universitet . IT-Universitetet . Knowledge Lab, Syddansk Universitet . Væksthus Hovedstadsregionen . Aalborg Universitet