给定一个简单的二进制掩码(例如矩形的边界)。
如何使用多边形获取 x-y 坐标?
这是我到目前为止所尝试过的:
coords = np.transpose(np.nonzero(mask))
然而,这种方法会生成填充的对象,而不是所需的边界。
plt.plot(coords[:, 1], coords[:,0])
基本上,我想要白色像素的 x-y 坐标列表,以使用此列表重新绘制矩形(未填充)。
Using cv2.findContours
适用于复杂形状和多个对象。Polygons
列表包含coords
列出每个看起来像这样的 [x1, y1, x2, y2, x3, y3, ...]。
contours, _ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
polygons = []
for obj in contours:
coords = []
for point in obj:
coords.append(int(point[0][0]))
coords.append(int(point[0][1]))
polygons.append(coords)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)