人群头部点标注可视化

import os
import cv2
from xml.dom import minidom

# 读xml文件
#dom = minidom.parse('G:/data2/annotations/11-5/DJI_0404.xml')
dom = minidom.parse('G:/data/data2/CrowdCounting/dian/11-5/DJI_0404.xml')
# 获取根节点
root = dom.documentElement
# 按照名称查找子节点,注意这里会递归查找所有子节点
tracks = root.getElementsByTagName('track')
print("tracks:",len(tracks))
pointlist = []
m = 0

for track in tracks:
    x1y1=[]
    xy = ()
    plist = []
    # 获取track的子节点point
    points = track.getElementsByTagName('point')
    m = m + 1
    for point in points:
        frames = point.getAttribute('frame')
        # 获取point的属性值
        occluded = point.getAttribute('occluded')
        outside = point.getAttribute('outside')
        x = point.getAttribute('x')
        y = point.getAttribute('y')
        x = int(x)
        y = int(y)
        # 放入元组中
        xy = (x, y)
        #print(xy)
        # 放入列表中
        if occluded == "1" or outside == "1":
            xy = (-1, -1)
        xy = list(xy)
        print(xy)
        plist.append(xy)
        print(plist)
        break

    pointlist.append(plist)
    break
print(pointlist)
# print(pointlist)  # 打印x,y坐标


print("帧数:",frames)
print("***********************************************************************************************")
print("***********************************************************************************************")
k = 0
sort = []
img_prefix = "jpg"
files = os.listdir("F:/data/data2/CrowdCounting/dian/cut/11-6/DJI_0645")
# files = os.listdir("G:/data/data2/CrowdCounting/dian/cut1/11-5/DJI_0404")
sort_1 = []
for file in files:
    index = file.find(".")
    prefix = file[index+1]
    if prefix in img_prefix:
        sort_1.append(file[9:])  # 只取数值那一部分
sort_1.sort(key=lambda x: int(x[: -4]))   # 获取图片上的数值,并进行排序
print(sort_1)
sort_2 = []
for i in range(0,int(frames)+1):
    sort_2.append("F:/data/data2/CrowdCounting/dian/cut/11-6/DJI_0645/DJI_0645_"+ sort_1[i])
    # sort_2.append("G:/data/data2/CrowdCounting/dian/cut1/11-5/DJI_0404/DJI_0404_" + sort_1[i])
num = 1
for image_filename in sort_2:
    print(image_filename)
    img = cv2.imread(image_filename)
    for i in range(0, len(tracks)):
        p1 = pointlist[i][k]
        p2 = tuple(pointlist[i][k])
        # print(p2)
        if p2 != (-1,-1):
            cv2.circle(img, p2, 3, (0, 0, 255), -1)
    k = k+1
    print("KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK")
    saveFile = "F:/data/data2/CrowdCounting/dian/save1/11-6/DJI_0645/"  # 保存文件的路径
    # saveFile = "G:/data/data2/CrowdCounting/dian/save/DJI_0404/"  # 保存文件的路径

    cv2.imwrite(saveFile + 'DJI_0645_' + str(num) + '.jpg', img)  # 保存图像文件
    num += 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值