利用cv2绘制coco keypoints点位

  • 绘制coco点位的方法大抵上有两种,第一种用pycocotool工具,第二种为利用cv2绘制。
  • 代码如下
import json
import cv2

json_dir="C:\\coco2017\\annotations\\person_keypoints_val2017.json"
img_dir='C:\\coco2017\\val2017\\000000097278.jpg'

keypoints = [] #存放keypoints的信息
x,y,v = [],[],[] #将keypoints分离出来,v=0表示没有标注,v=1表示标注了但被遮挡,v=2表示标注了且未被遮挡
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']  #提取出图片的id
    for j in f['annotations']:
        if j['image_id'] == image_id:
           keypoints.append(j['keypoints']) #根据图片的id提取出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绘制出来的结果如下
    在这里插入图片描述
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tomorrow;

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值