dmtx / libdmtx

libdmtx Library
Other
300 stars 137 forks source link

not able to read datamatrix #30

Closed bsdis closed 4 years ago

bsdis commented 5 years ago

Does anyone have an idea why I cannot read this QR code using libdmtx software? I dont think the quality of the image is that bad... https://i.ibb.co/FnQkcSL/platedmtrx.png

nikolaitasev commented 5 years ago

First it is a Datamatrix not QR code. The problem is most probably the quality, try to binarize the image and than pass it to the library. Also you need to have at least one module empty space on each side.

bsdis commented 5 years ago

Hi, even this binarized image is not being decoded: https://i.ibb.co/Gk7sFZ1/Screen-Shot-2019-06-09-at-17-44-53.png Why?

msva commented 5 years ago

Hi, even this binarized image is not being decoded: https://i.ibb.co/Gk7sFZ1/Screen-Shot-2019-06-09-at-17-44-53.png Why?

Does your goal is to read the content of exactly this matrix (once), and then forget about it, or do you want to build some algorythm to read many more matrixes like that?

In case of the former one, I can decode it for you (it's not a big matrix and I can do what I described below).

In case of the latter one, it's a bit complicated..

Well, the main reason of impossibility to decode this matrix, imo, is that it is very "dirty" (some cells have different width/height, some of them are even shifted a bit).

So, talking honestly, that make it to be a not-a-matrix-at-all for decoding algorythm, but something-that-looks-like-matrix to you.

If you'll make a real matrix with "valid" cells, colored with a pattern of your given "matrix", I bet decoder will read it.

msva commented 5 years ago

Well, it is also few things, that can be the reason of failing to decode. One of them, say, is a wrong "checksum".

msva commented 5 years ago

Btw, talking about terminology. "Binarization" is not just making it b/w. It is more like "making it easier to decoder to represent cells like binary code". And there, well, should be cells (square ones), although decoder allows some deviation, but there is no magic exists in the world, so decoder can't perform the miracle. I've properly binarized your initial (soldered) matrix, and got the "8205279" as decoding result: image

Although, your second image looks like the broken one (maybe, it is either randomly picked "pseudocells", or some "pseudocells" was colored by mistake (or even some of them are missing)).

shm0nya commented 4 years ago

I don`t know where place this https://github.com/dmtx/libdmtx/wiki/Repair-Error

I found error. May be it can fix this