gpt4 book ai didi

python-3.x - 分割掩码的反转像素坐标

转载 作者:太空宇宙 更新时间:2023-11-03 22:36:29 25 4
gpt4 key购买 nike

以下是分割掩码的图像(显示为黄色)。覆盖在该蒙版上的是完全相同的分割蒙版(显示为蓝色)的像素/坐标。

Segmentation mask

我的问题是:为什么这些像素/坐标在对角线上是倒置的、透明的和 split 的?为什么不将它们绘制为完整的“填充”,例如蒙版本身?

我的目标是让这些坐标以“正常”(x,y) 线性顺序出现。代码:

from matplotlib import patches
import numpy as np

# create mask
mask = np.zeros((350, 525), dtype=np.uint8)

# populate region of mask
mask[2:222,42:521] = 1

# get coordinates of populated region
y, x = np.where(mask == 1)
pts = np.column_stack([x, y])

# define figure, axes, title
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.set_title('Segmentation mask pixel coordinates')

# show mask
plt.imshow(mask, interpolation='none')

# add mask points
poly = patches.Polygon(pts)
ax.add_patch(poly)
plt.show()

最佳答案

在您的示例中,len(pts) 给出了 105380,因为 pts 包含基于行的顺序的掩码的所有点。所以 poly 具有长度 = 105380 和宽度 = 1 的蛇形。蛇从左上角开始并在右下角结束 - 这就是为什么你有对角线。

要更正情节,您可以进行以下修改:

# borders
(x1, y1), (x2, y2) = pts.min(axis=0), pts.max(axis=0)
# corners
pts_for_poly = list(zip((x1, x2, x2, x1), (y1, y1, y2, y2)))
# rectangle polygon
poly = patches.Polygon(pts_for_poly)

我希望现在看起来有点像预期或接近预期。

关于python-3.x - 分割掩码的反转像素坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57916828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com