【发布时间】:2022-05-15 23:48:00
【问题描述】:
由于某种我无法理解的原因,open cv 函数cv2.moments 返回一个字典,其中包含我提供的轮廓的所有零值。
这是一个 MWE:
contour = [[[271, 67]],
[[274, 67]],
[[275, 68]],
[[278, 68]],
[[279, 69]],
[[283, 69]],
[[284, 70]],
[[287, 70]],
[[288, 71]],
[[291, 71]],
[[292, 72]],
[[295, 72]],
[[292, 72]],
[[291, 71]],
[[288, 71]],
[[287, 70]],
[[284, 70]],
[[283, 69]],
[[279, 69]],
[[278, 68]],
[[275, 68]],
[[274, 67]]
]
x=np.asarray(x)
moments = cv2.moments(x)
结果:
print(moments)
{'m00': 0.0, 'm10': 0.0, 'm01': 0.0, 'm20': 0.0, 'm11': 0.0, 'm02': 0.0, 'm30': 0.0, 'm21': 0.0, 'm12': 0.0, 'm03': 0.0, 'mu20': 0.0, 'mu11': 0.0, 'mu02': 0.0, 'mu30': 0.0, 'mu21': 0.0, 'mu12': 0.0, 'mu03': 0.0, 'nu20': 0.0, 'nu11': 0.0, 'nu02': 0.0, 'nu30': 0.0, 'nu21': 0.0, 'nu12': 0.0, 'nu03': 0.0}
这种行为的含义是什么? 我相信这是因为轮廓是开放的,但我不确定。 有没有一种标准方法可以通过预先检查轮廓是打开还是关闭来消除这种行为?
【问题讨论】:
标签: python opencv computer-vision geometry