Welcome new user! You can search existing questions and answers without registering, but please register to post new questions and receive answers. Note that due to large amounts of spam attempts, your first three posts will be manually moderated, so please be patient.
Welcome to JeVois Tech Zone, where you can ask questions and receive answers from other members of the community.

best approach to decode data_matrix 2D barcode with JeVois

0 votes

Background: QRCode demo works well, so long that the QR code is big enough. However, i'm in a situation where my 2D barcode should resist well to occlusion + end up with a small size.

I read here and there, that using DATA_MATRIX format would likely be a better pick than QR code then.

However, zbar does not seem to support DATA_MATRIX format.

Google suggested 3 options (in no particular order)

Ideally, I would make a python poc, then look how well those barcodes behave compared to qrcodes in this specific application. Then improve performance by going cpp if required.
What would you suggest?

asked Nov 26, 2018 in Programmer Questions by fourchette (570 points)

1 Answer

0 votes
if the opencv version has python bindings, then that should be the easiest. See here for how easy it was to get the ArUco tags going in python on JeVois. No need to install anything, opencv is pre-installed. Usually the implementations are quite fast too. By the way, those ArUco tags might be a good option too.

answered Nov 26, 2018 by JeVois (46,540 points)

And indeed... using JeVois in python is a breeze. However, it turns out that there is no datamatrix support natively in opencv after all. What i found seemed to be someone's code decoding datamatrix in a fork of an old opencv.

Looks like the easiest approach is to use libdmtx but i dont know how to install it on JeVois and it's another issue. i'll post another question soon
yes, have you seen this tutorial?


we create a module with an external dependency, in that case DLib. You should be able to follow the same steps. The key is to get a list of all the .c, .cpp, etc files that need to be compiled from that external dependency, and to completely bypass the build process of that dependency, just compile the files in your own CMakeLists and include them as object files for your module.

Also inspect the CMakeLists.txt of jevoisbase as we do that many times in there, for ZBar, TensorFlow, etc