由于某种我无法理解的原因,open cv函数
结果如下:
这种行为的意义是什么? 我认为这是因为轮廓是开放的,但我不确定。 有没有一种标准的方法可以通过事先检查轮廓是否开放或闭合来消除这种行为?
cv2.moments
对于我提供的轮廓返回一个包含全零值的字典。
以下是一个最小工作示例: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]]]
contour = np.asarray(contour)
moments = cv2.moments(contour)
结果如下:
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}
这种行为的意义是什么? 我认为这是因为轮廓是开放的,但我不确定。 有没有一种标准的方法可以通过事先检查轮廓是否开放或闭合来消除这种行为?