zoukankan      html  css  js  c++  java
  • 【Caffe】生成数据之修改label

    【Caffe】生成数据之修改label

    当标注图片尺寸不一致时需要批量修改

    • 修改图片 cv2.resize()
    • 修改xml标注框
    import  xml.dom.minidom as xd
    import os
    import numpy as np
    def changesize512(xml_path,xml_name):
        # 将label 尺寸更改为512
        tmp_name = xml_name
        xml_name = os.path.join(xml_path,xml_name)
        dom = xd.parse(xml_name)
        root=dom.documentElement 
        # print(xml_name)
        width = root.getElementsByTagName('width')
        height = root.getElementsByTagName('height')
        xmin = root.getElementsByTagName('xmin')
        ymin = root.getElementsByTagName('ymin')
        xmax = root.getElementsByTagName('xmax')
        ymax = root.getElementsByTagName('ymax')
        if width[0].firstChild.data == '1280' and height[0].firstChild.data=='1024':
            width[0].firstChild.data = 512
            height[0].firstChild.data = 512
            for i in range(len(xmin)):
                xmin[i].firstChild.data = int(int(xmin[i].firstChild.data)/1280*512)
                ymin[i].firstChild.data = int(int(ymin[i].firstChild.data)/1024*512)
                xmax[i].firstChild.data = int(int(xmax[i].firstChild.data)/1280*512)
                ymax[i].firstChild.data = int(int(ymax[i].firstChild.data)/1024*512)
        with open(tmp_name,'w') as fh:
            dom.writexml(fh)
    
    
    if __name__=='__main__':
        pathDir = os.listdir('***/label')
        num = 0
        for allDir in pathDir:
            num += 1
            xml_path = '***label'
            xml_name = allDir
            changesize512(xml_path,xml_name)
            # break
        print(num)
    
    
  • 相关阅读:
    [转载] $CF652B$ 题解
    [转载] $Luogu$ $P4951$ 题解
    luoguP3723 HNOI2017 礼物
    动态dp学习笔记
    noip级别模板小复习
    noip2017简要题解。
    noip考前抱佛脚 数论小总结
    HDU 6071 Lazy Running
    POI2012 ODL-Distance
    [NOI2002]荒岛野人
  • 原文地址:https://www.cnblogs.com/wangxiaobei2019/p/14323756.html
Copyright © 2011-2022 走看看