- 绘制coco点位的方法大抵上有两种,第一种用pycocotool工具,第二种为利用cv2绘制。
- 代码如下
import json
import cv2
json_dir="C:\\coco2017\\annotations\\person_keypoints_val2017.json"
img_dir='C:\\coco2017\\val2017\\000000097278.jpg'
keypoints = []
x,y,v = [],[],[]
point_list = []
with open(json_dir,'r') as f:
f = json.load(f)
for i in f['images']:
if i['file_name'] == img_dir.split('\\')[3]:
image_id = i['id']
for j in f['annotations']:
if j['image_id'] == image_id:
keypoints.append(j['keypoints'])
num_ann = len(keypoints)
for k in keypoints:
x.append(k[0::3])
y.append(k[1::3])
v.append(k[2::3])
for k2 in range(17):
for k3 in range(num_ann):
point_list.append((x[k3][k2],y[k3][k2]))
img=cv2.imread(img_dir)
for point in point_list:
cv2.circle(img,point,2,(0,255,0),2)
cv2.imshow('demo',img)
cv2.waitKey(10)
cv2.waitKey(1000)
- 利用cv2绘制出来的结果如下