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
人群头部点标注可视化
最新推荐文章于 2024-08-06 17:42:20 发布