如何在python中解码点状2D数据矩阵?

时间:2019-03-20 14:26:50

标签: python camera raspberry-pi decoding datamatrix

我打算从图片like this one中解码2D数据矩阵代码(DMC)。

每张图片一个代码。更重要的是,整个过程将在带有Pi NoIR V2相机的Raspberry Pi上运行。相机会拍摄一个对象的图片,然后尝试对其进行解码,如果解码过程不成功或DMC无法识别,则它会执行X任务,否则会执行Y任务。

代码如下:

#!/usr/bin python2
# -*- coding: utf-8 -*-
from picamera import PiCamera
from picamera.array import PiRGBArray
from pylibdmtx.pylibdmtx import decode

cam = PiCamera()
cam.resolution = (1920, 1088,)
cam.color_effects = (128, 128,) 
cam.video_stabilization = True
cam.contrast = 42
cam.brightness = 42

file = '/home/pi/Asztal/DMCScanner/crimg.jpg'        
cam.capture(file)

data = PiRGBArray(cam) 
cam.capture(data, 'rgb')
img = data.array.astype('uint8')
h, w = img.shape[:2]
got = decode((img.tobytes(), w, h), max_count=1, timeout=None)[0]

if got:
    Y
else:
    X

现在,我已经尝试过使用libdmtx的pylibdmtx python模块。

我的问题是,该模块无法识别以虚线样式打印DMC的图片。因此,只有方形样式的样式才有效like this one。这是一个问题,因为我们的其他设备(例如Zebra扫描仪)都可以识别并解码DMC,因此X不应如此。

由于我的性能和处理器体系结构(RPi,arm7)确实受到限制,因此我没有其他模块/库可以尝试。

有没有2D数据矩阵解码器库可以解码点状的库?或者我缺少什么?

0 个答案:

没有答案