にポリゴンを回し、ポリゴンの外/内側に入る全てのポイントは、True/Falseのようなものであること。私は完璧なソリューション(SciPy Create 2D Polygon Mask)を見つけ思ったが、何らかの理由で、これは動作しません!Pythonは:私はマスク配列に変身したいポリゴンを持つマスク配列
私は間違っていますか?
#!/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
私のポリゴン番号は浮動小数点型です。どうすればいいですか? –