我有一个灰度图像的大小(1920,1080),我试图创建一个遮罩。我用一个外部软件来手动获得兴趣点(多边形)。现在有27个坐标点代表一个多边形在图像的中间。
我使用以下代码创建了一个掩码:
import numpy as np
import matplotlib.pyplot as plt
from skimage.draw import polygon2mask
#image= grayscale with shape (1920,1080)
coordinates = ([1080.15, 400.122], [1011.45, 400.90], .......) #27 points
polygon = np.array(coordinates)
mask = polygon2mask(image.shape, polygon)
result = ma.masked_array(image, np.invert(mask))
plt.imshow(result)
我面临的问题是输出在错误的位置;它应该在某种程度上居中,因为我从中心取坐标,但它实际上在图像的边缘(底部):
此外,大小似乎有点小,比预期的。我不知道是什么导致这个问题,我一定是做错了什么,在我的代码..请帮助我确定问题。
1条答案
按热度按时间brvekthn1#
您反转了x和y坐标。
polygon2mask
坐标的顺序为y,x
。新增
在定义坐标之后,您可能会得到预期的结果。