-
-
Notifications
You must be signed in to change notification settings - Fork 73
/
checkReadCOCOMask.py
28 lines (27 loc) · 1.24 KB
/
checkReadCOCOMask.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import json
import numpy as np
import PIL.Image
from pycocotools import mask
json_path = '/Users/ryo/Desktop/test_annotations/test_data_donut/annotations.json';
with open(json_path,'r') as fid:
groundtruth_data = json.load(fid)
annotations_index = {}
if 'annotations' in groundtruth_data:
for annotation in groundtruth_data['annotations']:
image_id = annotation['image_id']
if image_id not in annotations_index:
annotations_index[image_id] = []
annotations_index[image_id].append(annotation)
images = groundtruth_data['images']
for idx, image in enumerate(images):
if image['id'] not in annotations_index:
continue
annotations_list = annotations_index[image['id']]
for idx, object_annotations in enumerate(annotations_list):
binary_mask = mask.decode(object_annotations['segmentation'])
mask_shape = binary_mask.shape
binary_mask = np.ravel(binary_mask, order='F')
binary_mask = binary_mask.reshape(mask_shape, order='C')
binary_mask[binary_mask > 0] = 255
pil_image = PIL.Image.fromarray(binary_mask)
pil_image.save('mask' + str(image_id) + '_' + str(idx)+ '.png')