| import numpy as np |
| import cv2 |
| import pycocotools.mask as mask_utils |
| from PIL import Image |
| import os |
|
|
|
|
| def poly_to_mask(poly, label, h, w): |
| mask = [] |
| for i in range(len(poly)): |
| mask_ = np.zeros((h, w), dtype=np.uint8) |
| cv2.fillPoly(mask_, [np.round(poly[i]).astype(int)], int(label[i])) |
| mask.append(mask_) |
| return mask |
|
|
|
|
| def coco_poly_to_mask(poly, h, w): |
| mask = [] |
| for i in range(len(poly)): |
| rles = mask_utils.frPyObjects([poly[i].reshape(-1)], h, w) |
| rle = mask_utils.merge(rles) |
| mask_ = mask_utils.decode(rle) |
| mask.append(mask_) |
| return mask |
|
|
|
|
| def rcnn_poly_to_mask(poly, ind_group, label, h, w): |
| mask = [] |
| for i in range(len(ind_group)): |
| poly_ = [np.round(poly[ind]).astype(int) for ind in ind_group[i]] |
| mask_ = np.zeros((h, w), dtype=np.uint8) |
| cv2.fillPoly(mask_, poly_, int(label[i])) |
| mask.append(mask_) |
| return mask |
|
|
|
|
| def rcnn_coco_poly_to_mask(poly, ind_group, h, w): |
| mask = [] |
| for i in range(len(ind_group)): |
| poly_ = [poly[ind].reshape(-1) for ind in ind_group[i]] |
| rles = mask_utils.frPyObjects(poly_, h, w) |
| rle = mask_utils.merge(rles) |
| mask_ = mask_utils.decode(rle) |
| mask.append(mask_) |
| return mask |
|
|
|
|
| def coco_poly_to_rle(poly, h, w): |
| rle_ = [] |
| for i in range(len(poly)): |
| rles = mask_utils.frPyObjects([poly[i].reshape(-1)], h, w) |
| rle = mask_utils.merge(rles) |
| rle['counts'] = rle['counts'].decode('utf-8') |
| rle_.append(rle) |
| return rle_ |
|
|
|
|
| def rcnn_coco_poly_to_rle(poly, ind_group, h, w): |
| rle_ = [] |
| for i in range(len(ind_group)): |
| poly_ = [poly[ind].reshape(-1) for ind in ind_group[i]] |
| rles = mask_utils.frPyObjects(poly_, h, w) |
| rle = mask_utils.merge(rles) |
| rle['counts'] = rle['counts'].decode('utf-8') |
| rle_.append(rle) |
| return rle_ |
|
|
|
|