【问题标题】:Python Data Matrix DetectionPython 数据矩阵检测
【发布时间】:2017-08-29 08:21:54
【问题描述】:

通过使用开源库,pylibdmtx 能够检测图像中的数据矩阵条形码。当条形码只是大图像中的一小部分时,处理速度会变慢。缩小和检测条形码需要很少的参数

这是库中编码的一部分

with libdmtx_decoder(img, shrink) as decoder:
        properties = [
            (DmtxProperty.DmtxPropScanGap, gap_size),
            (DmtxProperty.DmtxPropSymbolSize, shape),
            (DmtxProperty.DmtxPropSquareDevn, deviation),
            (DmtxProperty.DmtxPropEdgeThresh, threshold),
            (DmtxProperty.DmtxPropEdgeMin, min_edge),
            (DmtxProperty.DmtxPropEdgeMax, max_edge)
        ]

我的问题是,除了 pylibdmtx 之外还有其他库可以使用吗?或任何提高处理速度而不影响准确性的建议。顺便说一下 pylibdmtx 于 18/1/2017 更新,它是一个维护的库

【问题讨论】:

  • 请求图书馆推荐是题外话
  • @Julien 任何增加处理的建议
  • 我们可以看看样品吗?

标签: python image-processing barcode datamatrix


【解决方案1】:

一个选项是通过图像过滤预先定位代码。

数据矩阵具有高对比度(理论上)和给定的单元大小。如果您将图像切碎,使单元格变为 1 或 2 个像素大,则 Data Matrix 将作为一个高度纹理化的区域脱颖而出,并且渐变会强烈响应。

【讨论】:

  • 解码器函数中的收缩参数确实有帮助,虽然我不完全理解它!非常感谢您的回答。
  • 或者:如果您裁剪图像中的所有数据矩阵并在每个裁剪的子图像上运行 pylibdmtx,它的运行速度会明显更快
【解决方案2】:

我也在使用这个库来解码数据矩阵,我发现了一些关于这些参数的东西,超时是以毫秒为单位的 int 值,这确实有助于快速解码,而 gap_size 是当你有超过时使用的两个数据矩阵之间没有像素一个数据矩阵按顺序以相等的间隙解码。使用阈值,您可以直接为该函数提供 0-100 之间的阈值,而无需使用 open-CV 函数,并且最大计数不是要在一张图像中解码的数据矩阵,形状是 data_matrix 大小 i。 1010 为 0,1212 为 1,依此类推。 通过将所有这些结合使用,我们可以快速有效地解码数据矩阵。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2012-04-16
  • 1970-01-01
  • 1970-01-01
  • 2021-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-28
相关资源
最近更新 更多