#!/usr/bin/env python
from __future__ import print_function
import argparse
import glob
import json
import os
import os.path as osp
import sys
import math
import numpy as np
import cv2
import PIL.Image
import PIL.ImageDraw
import PIL.ImageFont
# import sys
# sys.path.append('/home/pan/software/labelme')
# import labelme
def main():
parser = argparse.ArgumentParser(
formatter_class=argparse.ArgumentDefaultsHelpFormatter
)
parser.add_argument('--input_dir', help='json directory',
default='/home/zhao/roi/33')
parser.add_argument('--output_dir', help='output dataset directory',
default='/home/zhao/roi/33')
args = parser.parse_args()
if not osp.exists(args.output_dir):
os.makedirs(args.output_dir)
roi_dir = '/home/zhao/roi/33'
fg_dir = roi_dir.replace('roi', 'foreground')
for roi_file in glob.glob(osp.join(roi_dir, '*.json')):
with open(roi_file) as roi_f:
roi_data = json.load(roi_f)
roi_shapes = roi_data['shapes']
img_file = roi_file.replace('.json', '.jpg')
print('img_file=', img_file)
img = cv2.imread(img_file)
#xx = img
img = np.zeros((1080, 1920, 3), np.uint8)
for roi_shape in roi_shapes:
roi_points = roi_shape['points']
# for k in roi_points:
# cv2.circle(xx ,(int(k[0]), int(k[1])), 8 ,(0, 0, 255), 10)
# print (xx)
# xx = cv2.resize(xx, (1920/2, 1080/2))
# cv2.imshow("res", xx)
# k = cv2.waitKey(0)
############################################################
roi_points = np.array(roi_points, np.int32)
roi_points = roi_points.reshape((-1, 1, 2))
cv2.fillPoly(img, [roi_points], [255,255,255])
roipath =img_file.replace(".jpg", ".png").replace("BG", "ROI")
cv2.imwrite(roipath, img)
if __name__ == '__main__':
main()