写一个遍历annotation文件夹中所有xml标注文件,并读取bbox和class信息的python脚本
时间: 2024-03-05 16:53:14 浏览: 154
可以使用Python中的ElementTree库来处理XML文件。以下是一个示例脚本,可以遍历annotation文件夹中的所有XML标注文件,并提取bbox和class信息。
```python
import os
import xml.etree.ElementTree as ET
# 定义XML文件夹路径
xml_folder = '/path/to/annotation'
# 遍历XML文件夹中的所有文件
for file_name in os.listdir(xml_folder):
# 检查文件是否是XML文件
if file_name.endswith('.xml'):
# 打开XML文件
xml_path = os.path.join(xml_folder, file_name)
tree = ET.parse(xml_path)
root = tree.getroot()
# 遍历XML文件中的每个object元素
for obj in root.findall('object'):
# 提取bbox信息
bbox = obj.find('bndbox')
xmin = int(bbox.find('xmin').text)
ymin = int(bbox.find('ymin').text)
xmax = int(bbox.find('xmax').text)
ymax = int(bbox.find('ymax').text)
# 提取class信息
obj_class = obj.find('name').text
# 打印信息
print('File: {}, bbox: ({}, {}, {}, {}), class: {}'.format(file_name, xmin, ymin, xmax, ymax, obj_class))
```
在这个脚本中,我们首先定义了XML文件夹的路径,然后遍历这个文件夹中的所有文件。对于每个XML文件,我们使用ElementTree库打开文件并获取其根元素。然后,我们遍历XML文件中的每个object元素,并提取bbox和class信息。最后,我们打印信息。
阅读全文