读取INRIA 说明文件 生成 voc xml python 版本
来源:互联网 发布:sql server 教材 编辑:程序博客网 时间:2024/05/19 16:20
#!/usr/bin/python# -*- coding: UTF-8 -*-# 文件名:txt_to_xml.pyfrom xml.dom.minidom import Documentimport osimport relist = os.listdir("Annotations")os.chdir('Annotations')#os.system('pause')#raw_input(unicode('按回车键退出...','utf-8').encode('gbk'))for oldfilename in list: if str(".txt") not in oldfilename: continue print oldfilename #raw_input(unicode('按回车键退出...','utf-8').encode('gbk')) fileindex = re.findall('\d+', oldfilename) print fileindex #raw_input(unicode('按回车键退出...','utf-8').encode('gbk')) print str(int(fileindex[0])) #raw_input(unicode('按回车键退出...','utf-8').encode('gbk')) newfilename = "00" + str(int(fileindex[0])) + ".xml" #print newfilename #raw_input(unicode('按回车键退出...','utf-8').encode('gbk')) f = open(oldfilename, "r") print 'processing:' + f.name doc = Document() annotation = doc.createElement('annotation') doc.appendChild(annotation) folder = doc.createElement('folder') folder.appendChild(doc.createTextNode('VOC2007')) annotation.appendChild(folder) filename = doc.createElement('filename') filename.appendChild(doc.createTextNode("00" + str(int(fileindex[0])) + ".jpg")) annotation.appendChild(filename) source = doc.createElement('source') annotation.appendChild(source) database = doc.createElement('database') database.appendChild(doc.createTextNode('PASperson Database')) source.appendChild(database) annotation1 = doc.createElement('annotation') annotation1.appendChild(doc.createTextNode('PASperson')) source.appendChild(annotation1) fr = f.readlines() # 调用文件的 readline()方法一次读取 for line in fr: if str(line).__contains__("size"): sizes = [] sizes = re.findall('\d+', line) size = doc.createElement('size') annotation.appendChild(size) width = doc.createElement('width') width.appendChild(doc.createTextNode(sizes[0])) size.appendChild(width) height = doc.createElement('height') height.appendChild(doc.createTextNode(sizes[1])) size.appendChild(height) depth = doc.createElement('depth') depth.appendChild(doc.createTextNode(sizes[2])) size.appendChild(depth) segmented = doc.createElement('segmented') segmented.appendChild(doc.createTextNode('0')) annotation.appendChild(segmented) if (str(line).__contains__('Objects')): nums = re.findall('\d+', line) break for index in range(1, int(nums[0])+1): for line in fr: if str(line).__contains__("Bounding box for object " + str(index)): coordinate = re.findall('\d+', line) object = doc.createElement('object') annotation.appendChild(object) name = doc.createElement('name') name.appendChild(doc.createTextNode('person')) object.appendChild(name) pose = doc.createElement('pose') pose.appendChild(doc.createTextNode('Unspecified')) object.appendChild(pose) truncated = doc.createElement('truncated') truncated.appendChild(doc.createTextNode('0')) object.appendChild(truncated) difficult = doc.createElement('difficult') difficult.appendChild(doc.createTextNode('0')) object.appendChild(difficult) bndbox = doc.createElement('bndbox') object.appendChild(bndbox) #数字中包含序号,下标应从1开始 xmin = doc.createElement('xmin') xmin.appendChild(doc.createTextNode(coordinate[1])) bndbox.appendChild(xmin) ymin = doc.createElement('ymin') ymin.appendChild(doc.createTextNode(coordinate[2])) bndbox.appendChild(ymin) xmax = doc.createElement('xmax') xmax.appendChild(doc.createTextNode(coordinate[3])) bndbox.appendChild(xmax) ymax = doc.createElement('ymax') ymax.appendChild(doc.createTextNode(coordinate[4])) bndbox.appendChild(ymax) f.close() f = open(newfilename, 'w') f.write(doc.toprettyxml(indent="")) f.close() print str(fileindex) + " compelete"print 'process compelete'
阅读全文
0 0
- 读取INRIA 说明文件 生成 voc xml python 版本
- C++ 读取VOC XML文件
- python 处理pascal voc数据 读取xml文件
- Python生成PASCAL VOC格式的xml标注文件
- Python生成PASCAL VOC格式的xml标注文件
- Python生成PASCAL VOC格式的xml标注文件
- python 数据转 voc xml
- Python文件读取说明
- python读取xml文件
- python读取xml文件
- python读取xml文件
- python读取xml文件
- python读取xml文件
- python读取xml文件
- python读取xml文件
- python读取xml文件
- python读取xml文件
- python读取xml文件
- 指针数组与数组指针
- mybatis中#和$的区别
- css中position属性(absolute|relative|static|fixed)概述及应用
- 最长的公共子序列
- 在SQL Server中创建用户角色及授权
- 读取INRIA 说明文件 生成 voc xml python 版本
- 哈夫曼编码的设计与实现
- javascript中in关键字的作用
- 基于Dragonboard 410c的mic和speaker的loopback调试
- [NOIP模拟][分块]subset
- 微信开发第一步(接入配置)
- OneCache-针对redis代理服务
- Linux信号(二)-- signal()函数
- Java多线程 -- JUC包源码分析5 -- Condition/ArrayBlockingQueue/LinkedBlockingQueue/Deque/PriorityBlockingQueu