cityscape数据集,我现在想根据json文件中的polygon画出整个road的区域,这是运行的脚本。这个文件必须使用coco的pythonAPI的包,把这个脚本放在pythonAPI文件夹下就可以运行。
from pycocotools import mask as maskUtils import numpy as np import json import matplotlib.pyplot as plt import Image,ImageDraw with open('aachen_000000_000019_gtFine_polygons.json', 'r') as f: data = json.load(f) # print data['objects'][2] l = [] for i in data['objects'][0]['polygon']: l.extend(i) img = Image.open("aachen_000000_000019_leftImg8bit.png") draw = ImageDraw.Draw(img) length = len(l) print length x1 = l[0] y1 = l[1] for i in range(1,length/2): x2 = l[i*2] y2 = l[i*2 + 1] draw.line(((x1,y1),(x2,y2)),fill=255) x1 = x2 y1 = y2 img.save("cross_line.jpg") rles = maskUtils.frPyObjects([l], data['imgHeight'], data['imgWidth']) rle = maskUtils.merge(rles) m = maskUtils.decode(rle) plt.imshow(m) plt.savefig("filename.png") plt.show()
这是画出的polygon的范围
这个是根据后面的一些代码直接画出区域
1.plt.imshow(m)后面加plt.show(),不然画不出来
2.plt.savefig("filename.png")必须在plt.show前面,在后面就保存为全白色的图片
3.polygon其实就是线段,所以可以直接通过读取坐标画线就可以