Working on a BSc Thesis using ZXing for multiple pattern recognition

Skip to first unread message


Apr 25, 2014, 5:42:05 AM4/25/14
Hello everyone!

I would like to start thanking you all for the amazing work you did/are doing with ZXing.

As stated in the subject, I am a BSc student working on a thesis using ZXing as main library for decoding.

Briefly: we are working on the possibility of using a 2D barcode for recognizing the position of the device on a 3D surface. Namely, having a hand-held device, it is possible to know exactly (given a certain sensibility) where the User is pointing on the surface.

I have some questions for you all, which may trigger more later on.

Here are our questions:

1. Have you ever heard of a similar project? If so, could you give us some reference to the project?

#We have made our researches and we constantly are looking for similar projects/thesis to use for comparison and acknowledgement.

2. Are there some sort of specifications regarding the technologies used for the detection in ZXing? Is it using OpenCV? If so, what do you use for decoding the different barcodes (we are currently using QR Codes)?

#We tried to look through the documentation but didn't manage to find much information about it.

3. What is the 2D barcode you think is the most efficient? And why?

#We went for QR codes for several reasons, some of them being that they are fairly common/popular nowadays and that ZXing natively provides a .

4. Do you have, by any chance, some sort of report, document or anything that you think it could be useful to us and that you are allowed to share with us? (e.g. benchmark reports of your decoder vs another, benchmark reports on the different barcodes etc...)

I am the one who directly worked on the encoding/decoding part and I have to say that ZXing was amazing and very easy to work with; for this reason I thought that trying to contact you all would be a far better solution.

And, if you have any other information/suggestion to give, please feel free to do so :)




Apr 25, 2014, 5:43:58 AM4/25/14

P.S. I meant "they are fairly common/popular nowadays and that ZXing natively provides a QRCodeMultiReader"

Sorry about that!


Sean Owen

Apr 25, 2014, 6:41:26 AM4/25/14
You want to know the 3D position of the barcode relative to the device? You can't know distance, but can know the orientation in space. There are a number of AR games that use this to overlay a 3D figure "sitting on" a QR code in the device's view.

The library does its own detection. I'd refer you to the source code to understand how it works; it is not something that makes sense to summarize.

QR codes are your best choice for this purpose because of easy detection of finder patterns.

I don't have any benchmarks, maybe you can find some done by third parties out there.


Apr 25, 2014, 8:47:24 AM4/25/14
Thanks for the reply, Sean.

The 3D position is handled by us (we put some data into the code itself which is then converted into 3D coordinates).
The distance is not an issues as the device will be placed right on the surface (we are using a macro lens for that).

There is no way to get some sort of report on how the detection/decoding is done?
Perhaps from a documentation.

Reading code and trying to figure out where each component is and how it is handled seems quite challenging.

Sean Owen

Apr 25, 2014, 8:54:07 AM4/25/14
It's pretty self-serve here; I don't have time or inclination to write more than the code and javadoc already in place, but contributions are welcome. 

If you just care about detection, look at .qrcode.Detector. The details are hard to parse, but the high-level structure is simple. Find the finder patterns, find an alignment pattern, then un-transform to get the bit matrix. The rest is just decoding according to the spec, which you can read about in great detail in the ISO spec.
Reply all
Reply to author
Message has been deleted
0 new messages