我需要根据N个凸多边形的顶点数组绘制一个二维二进制掩码。
import numpy as np
mask = np.zeros((100, 100), dtype=np.int8)
polys = np.array([[[30,32], [36,46], [41,48], [50, 36]],
[[10,32], [16,46], [30,48], [40, 36]],
[[56,44], [58,70], [78,90], [75,34]]], np.int32)
多边形之间的交叉区域也应该被屏蔽。我知道如何使用cv2库实现它:
import cv2
for i in polys.tolist():
cv2.fillConvexPoly(mask, np.array(i), 1)
imshow(mask, cmap='gray')
但我无法弄清楚如何使用本机numpy操作(没有for循环)来减少运行该函数的时间。