Decoding Datamatrix as digits using pylibdmtx

8k Views Asked by At

I am trying to decode the digits from a Datamatrix. This is my code

import cv2
from pylibdmtx.pylibdmtx import decode
a = decode(cv2.imread(dmtx.jpg'))
print(a)

Image to be decoded

The code runs without error. But it doesn't print anything, it gives me an empty matrix.

I couldn't understand the decode() function.

Can someone suggest me to decode as digits using pylibdmtx lib?

1

There are 1 best solutions below

1
On BEST ANSWER

Try to threshold the input image.

import numpy as np
import cv2
from pylibdmtx import pylibdmtx

if __name__ == '__main__':

    image = cv2.imread('image.jpg', cv2.IMREAD_UNCHANGED);

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    ret,thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)

    msg = pylibdmtx.decode(thresh)
    print(msg)