将voc格式转换为txt格式
时间: 2023-09-18 12:10:43 浏览: 45
可以使用以下代码将VOC格式的标注文件(.xml)转换为txt格式的标注文件:
```python
import os
import xml.etree.ElementTree as ET
def convert_voc_to_txt(voc_folder, txt_folder):
# 获取VOC格式标注文件列表
xml_files = os.listdir(voc_folder)
xml_files = [f for f in xml_files if f.endswith('.xml')]
for xml_file in xml_files:
# 解析xml文件
tree = ET.parse(os.path.join(voc_folder, xml_file))
root = tree.getroot()
# 获取图片文件名和文件路径
filename = root.find('filename').text
filepath = os.path.join(txt_folder, os.path.splitext(filename)[0] + '.txt')
with open(filepath, 'w') as f:
# 遍历所有object节点
for obj in root.findall('object'):
# 获取该object的类别名和位置信息
name = obj.find('name').text
bbox = obj.find('bndbox')
xmin = bbox.find('xmin').text
ymin = bbox.find('ymin').text
xmax = bbox.find('xmax').text
ymax = bbox.find('ymax').text
# 将类别名和位置信息写入txt文件
f.write('{} {} {} {} {}\n'.format(name, xmin, ymin, xmax, ymax))
print('Converted {} to {}'.format(xml_file, filepath))
```
将VOC格式的标注文件所在的文件夹路径和要输出的txt文件所在的文件夹路径传入`convert_voc_to_txt`函数即可转换。例如:
```python
voc_folder = '/path/to/voc_folder'
txt_folder = '/path/to/txt_folder'
convert_voc_to_txt(voc_folder, txt_folder)
```