Python-将二进制掩码转换为多边形

2024-03-03

给定一个简单的二进制掩码(例如矩形的边界)。

如何使用多边形获取 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(使用前将#替换为@)

Python-将二进制掩码转换为多边形 的相关文章

随机推荐