You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何以Data Matrix为基准获取图像旋转角度?

问题:获取Data Matrix旋转角度的最佳方法?

旋转的Data Matrix标签{: width="200"}

我有一批如上所示的图像,每张图都包含一个Data Matrix,但无法保证其与坐标轴对齐。不过无论旋转角度如何,我都能通过libdmtx可靠读取这些矩阵。但我还需要旋转图像,使标签保持正向。我的思路是获取Data Matrix的旋转角度,再用PIL将图像旋转至正确方向。pylibdmtx.decode会返回矩阵包含的数据,以及一个我原本认为是Data Matrix边界框的矩形。为验证这点,我用上图运行了以下代码:

from PIL import Image
from pylibdmtx.pylibdmtx import decode

def segment_qr_code(image: Image.Image):
    data = decode(image)[0]
    print(data.rect)

if __name__ == "__main__":
    segment_qr_code(Image.open('<path to image>'))

遗憾的是,代码返回了Rect(left=208, top=112, width=94, height=-9)。由于高度为负,我认为这并非Data Matrix的正确边界框;即便它是,我也不知道如何用它获取旋转角度。

获取Data Matrix旋转角度的最佳方法是什么?

我原本打算用边界框裁剪图像,得到仅包含Data Matrix的分割图,再通过图像阈值处理或轮廓提取获取旋转角度。但我不确定如何获取正确的边界框,即便得到也不知如何使用阈值处理,而且我更倾向于不用阈值处理,因为它并非始终准确。Data Matrix的底部和左侧始终有实心边框,我认为可以将其作为基准对齐图像,但未找到能返回Data Matrix旋转角度的库。

欢迎任何建议,提前致谢。


内容的提问来源于stack exchange,提问作者Jon Zavialov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 20:33:11