训练集的json文件标注如何显示在训练图片上

这两天都在弄json的读取,json也是一种数据文件,但是python中无法直接读入,需要用到json库中的load或loads函数,这里不细说
这篇是做一个自己的读取下来的记录,附上代码,目前只可以一张一张的图片进行处理,批处理的可以自己改动

#导入库
import json
import numpy as np
import json
import cv2
import os
import matplotlib.pyplot as plt
path = '/public/home/.../xx.json' #json文件路径

with open(path,'r') as f:  # 转换json文件内容为python中的列表或字典,根据自己的json文件来决定
    data = json.load(f)
length=len(data)  #整个标记文件中标记的个数,下面三行代码可以删除,不是必要的
#print(data)
print('*********************************')
print(length)
print('*********************************')
#data中每个元素都是嵌套的字典
img = cv2.imread('/public/home/....') #读入图像
copyimg=img.copy()#拷贝一份,不拷贝容易出错
for i in range(length):  #遍历每个嵌套
    datamask = data[i]['geometry']['coordinates'][0]#这里的全部是json转换过来的列表中嵌套的字典的键值
    arrPt = np.array(datamask, np.int32).reshape((-1, 1, 2)) # 多边形坐标点列表格式转换
    imgmask = cv2.polylines(copyimg,[arrPt],True,(0,0,0),10) #画黑色多边形
plt.figure(figsize=(12,10),dpi=200)
plt.imshow(imgmask)
plt.show() #显示图片

# 图片保存
#参数1是路径,要包括保存的名字和格式,参数2是来源图片
cv2.imwrite('/public/home/....',imgmask)

你可能感兴趣的:(学习记录,python,json,opencv)