什么是XML?
- XML 指可扩展标记语言(EXtensible Markup Language)
- XML 是一种标记语言,很类似 HTML
- XML 的设计宗旨是传输数据,而非显示数据
- XML 标签没有被预定义。您需要自行定义标签。
- XML 被设计为具有自我描述性。
- XML 是 W3C 的推荐标准
原文件如下,我们想删除掉部分object
展开
计算面积的方法为(xmax-xmin)*(ymax-ymin)
由图可以计算出,三个目标的面积分别为,
47124
88290
59444
我们要保留面积大于60000的目标
话不多说,上代码
import xml.etree.ElementTree as ET
xml_name = '/root/userfolder/Experiment/TCT/t00004.xml'
annotat_tree = ET.parse(xml_name)
root = annotat_tree.getroot()
# 找到所有object
object_dect = root.findall('object')
#遍历object,筛选不符合条件的目标
for x in object_dect:
xmin = x.find("./bndbox/xmin") #左上
ymin = x.find("./bndbox/ymin")
xmax = x.find("./bndbox/xmax") #右下
ymax = x.find("./bndbox/ymax")
xmin = int(xmin.text) - 1
ymin = int(ymin.text) - 1
xmax = int(xmax.text)
ymax = int(ymax.text)
xlen = xmax - xmin
ylen = ymax - ymin
# 如果目标的面积小于60000,删除
#print(xlen*ylen)
if xlen*ylen<=60000:
root.remove(x)
##保存结果
annotat_tree.write('tt1.xml')
Output
OK,成功筛选了不符合条件的目标
上面用到了查找和删除操作,更多操作请看