2
다각형 안쪽/바깥쪽에있는 모든 점이 참/거짓이되도록 마스크 배열로 바꾸려는 다각형이 있습니다. 나는 완벽한 솔루션 (SciPy Create 2D Polygon Mask)을 찾았지만 어떤 이유로 이것이 작동하지 않는다고 생각했습니다!파이썬 : 마스크 배열
내가 뭘 잘못하고 있니?
#!/usr/bin/env python3
import numpy as np
import scipy as sp
from PIL import Image, ImageDraw
nx, ny = 10, 10
poly = np.array([(1, 1), (6, 2), (9, 9), (3, 7)])
img = Image.new("L", [nx, ny], 0)
ImageDraw.Draw(img).polygon(poly, outline=1, fill=1)
mask = np.array(img)
print(mask)
# [[1 0 0 0 0 0 0 0 0 0]
# [0 0 0 0 0 0 0 0 0 0]
# [0 0 0 0 0 0 0 0 0 0]
# [0 0 0 0 0 0 0 0 0 0]
# [0 0 0 0 0 0 0 0 0 0]
# [0 0 0 0 0 0 0 0 0 0]
# [0 0 0 0 0 0 0 0 0 0]
# [0 0 0 0 0 0 0 0 0 0]
# [0 0 0 0 0 0 0 0 0 0]
# [0 0 0 0 0 0 0 0 0 0]]
더 넓은 맥락 : 나는 사각형 격자에 임의의 형태의 기능을 일하고 있어요. 그리드상의 모든 경계 포인트의 인덱스를 가지고 있으며이 피쳐 주위의 볼록한 선체 인덱스를 원합니다. scipy.spatial.ConvexHull(boundary_points)
은 나에게 볼록한 선체의 가장자리 점을 주며, 나는이 선체 다각형을 이제는 마스크로 바꾸기를 원합니다.
감사합니다. – flotzilla
다각형 번호가 부동 소수점 형식으로되어 있습니다. 어떻게해야합니까? –