json2mask

📅 发布时间:2026/8/28 13:46:23
json2mask
非原创保存自用importbase64importjsonimportosimportos.pathasospimportnumpyasnpimportPIL.Imagefromlabelmeimportutilsif__name____main__:jpgs_pathD:/images#######IMAGESJSONpngs_pathD:/labels#############PNGclasses[_background_,glue]countos.listdir(D:/labels)foriinrange(0,len(count)):pathos.path.join(D:/images,count[i])ifos.path.isfile(path)andpath.endswith(json):datajson.load(open(path))ifdata[imageData]:imageDatadata[imageData]else:imagePathos.path.join(os.path.dirname(path),data[imagePath])withopen(imagePath,rb)asf:imageDataf.read()imageDatabase64.b64encode(imageData).decode(utf-8)imgutils.img_b64_to_arr(imageData)label_name_to_value{_background_:0}forshapeindata[shapes]:label_nameshape[label]iflabel_nameinlabel_name_to_value:label_valuelabel_name_to_value[label_name]else:label_valuelen(label_name_to_value)label_name_to_value[label_name]label_value# label_values must be denselabel_values,label_names[],[]forln,lvinsorted(label_name_to_value.items(),keylambdax:x[1]):label_values.append(lv)label_names.append(ln)assertlabel_valueslist(range(len(label_values)))lblutils.shapes_to_label(img.shape,data[shapes],label_name_to_value)PIL.Image.fromarray(img).save(osp.join(jpgs_path,count[i].split(.)[0].jpg))newnp.zeros([np.shape(img)[0],np.shape(img)[1]])fornameinlabel_names:index_jsonlabel_names.index(name)index_allclasses.index(name)newnewindex_all*(np.array(lbl)index_json)utils.lblsave(osp.join(pngs_path,count[i].split(.)[0].png),new)print(Saved count[i].split(.)[0].jpg and count[i].split(.)[0].png)