批量将voc转txt
时间: 2023-09-06 19:07:33 浏览: 77
word批量转换成txt
你可以使用Python编写一个脚本来批量将VOC格式的XML文件转换为TXT文件。以下是一个示例代码:
```python
import os
import glob
import xml.etree.ElementTree as ET
def voc2txt(xml_path, txt_path):
# 打开XML文件
tree = ET.parse(xml_path)
root = tree.getroot()
# 获取图像宽度和高度
size = root.find('size')
width = int(size.find('width').text)
height = int(size.find('height').text)
# 打开TXT文件并写入目标检测框信息
with open(txt_path, 'w') as f:
for obj in root.iter('object'):
cls = obj.find('name').text
bbox = obj.find('bndbox')
x_min = int(bbox.find('xmin').text)
y_min = int(bbox.find('ymin').text)
x_max = int(bbox.find('xmax').text)
y_max = int(bbox.find('ymax').text)
x_center = (x_min + x_max) / 2.0 / width
y_center = (y_min + y_max) / 2.0 / height
w = (x_max - x_min) / float(width)
h = (y_max - y_min) / float(height)
f.write('{} {} {} {} {}\n'.format(cls, x_center, y_center, w, h))
if __name__ == '__main__':
# 设置XML文件和TXT文件的路径
xml_dir = '/path/to/xml/files'
txt_dir = '/path/to/txt/files'
# 遍历XML文件夹中所有的XML文件
for xml_file in glob.glob(xml_dir + '/*.xml'):
# 获取XML文件名(不含后缀)
xml_name = os.path.splitext(os.path.basename(xml_file))[0]
# 设置TXT文件名
txt_name = xml_name + '.txt'
# 设置TXT文件路径
txt_file = os.path.join(txt_dir, txt_name)
# 将XML文件转换为TXT文件
voc2txt(xml_file, txt_file)
```
在使用上述代码之前,需要将代码中的`/path/to/xml/files`和`/path/to/txt/files`分别替换为VOC格式的XML文件所在文件夹和TXT文件保存的文件夹的路径。
阅读全文