def mask_for_polygons(
im_size: Tuple[int, int], polygons: MultiPolygon) -> np.ndarray:
""" Return numpy mask for given polygons.
polygons should already be converted to image coordinates.
"""
img_mask = np.zeros(im_size, np.uint8)
if not polygons:
return img_mask
int_coords = lambda x: np.array(x).round().astype(np.int32)
exteriors = [int_coords(poly.exterior.coords) for poly in polygons]
interiors = [int_coords(pi.coords) for poly in polygons
for pi in poly.interiors]
cv2.fillPoly(img_mask, exteriors, 1)
cv2.fillPoly(img_mask, interiors, 0)
return img_mask
评论列表
文章目录