使用labelimg不小心把数据标成yolo格式怎么办,此处有脚本帮助你

使用labelimg不小心把胡据标成yolo格式,此时使用以下叫泵恢复数据,所有文件夹需要自己新建

def makexml(txtPath,xmlPath,picPath): #读取txt路径,xml保存路径,数据集图片所在路径
        dict = {'0': "slit_l",#字典对类型进行转换
                '1': "trans_l",
                '2': "slot_l",
                '3': "battery",
                '4': "chap_l",
                '5': "block_l",
                '6': "track_l",
                '7': "plash",
                '8': "block_h"}
        files = os.listdir(txtPath)
        for i, name in enumerate(files):
          xmlBuilder = Document()
          annotation = xmlBuilder.createElement("annotation")  # 创建annotation标签
          xmlBuilder.appendChild(annotation)
          txtFile=open(txtPath+'/'+name)
          txtList = txtFile.readlines()


      img = cv2.imread(picPath+'/'+name[0:-4]+".jpg")
      Pheight,Pwidth,Pdepth=img.shape
      for i in txtList:
         oneline = i.strip().split(" ")

         folder = xmlBuilder.createElement("folder")#folder标签
         folderContent = xmlBuilder.createTextNode("VOC2007")
         folder.appendChild(folderContent)
         annotation.appendChild(folder)

         filename = xmlBuilder.createElement("filename")#filename标签
         filenameContent = xmlBuilder.createTextNode(name[0:-4]+".jpg")
         filename.appendChild(filenameContent)
         annotation.appendChild(filename)

         size = xmlBuilder.createElement("size")  # size标签
         width = xmlBuilder.createElement("width")  # size子标签width
         widthContent = xmlBuilder.createTextNode(str(Pwidth))
         width.appendChild(widthContent)
         size.appendChild(width)
         height = xmlBuilder.createElement("height")  # size子标签height
         heightContent = xmlBuilder.createTextNode(str(Pheight))
         height.appendChild(heightContent)
         size.appendChild(height)
         depth = xmlBuilder.createElement("depth")  # size子标签depth
         depthContent = xmlBuilder.createTextNode(str(Pdepth))
         depth.appendChild(depthContent)
         size.appendChild(depth)
         annotation.appendChild(size)

         object = xmlBuilder.createElement("object")
         picname = xmlBuilder.createElement("name")
         nameContent = xmlBuilder.createTextNode(dict[oneline[0]])
         picname.appendChild(nameContent)
         object.appendChild(picname)
         pose = xmlBuilder.createElement("pose")
         poseContent = xmlBuilder.createTextNode("Unspecified")
         pose.appendChild(poseContent)
         object.appendChild(pose)
         truncated = xmlBuilder.createElement("truncated")
         truncatedContent = xmlBuilder.createTextNode("0")
         truncated.appendChild(truncatedContent)
         object.appendChild(truncated)
         difficult = xmlBuilder.createElement("difficult")
         difficultContent = xmlBuilder.createTextNode("0")
         difficult.appendChild(difficultContent)
         object.appendChild(difficult)
         bndbox = xmlBuilder.createElement("bndbox")
         xmin = xmlBuilder.createElement("xmin")
         mathData=int(((float(oneline[1]))*Pwidth+1)-(float(oneline[3]))*0.5*Pwidth)
         xminContent = xmlBuilder.createTextNode(str(mathData))
         xmin.appendChild(xminContent)
         bndbox.appendChild(xmin)
         ymin = xmlBuilder.createElement("ymin")
         mathData = int(((float(oneline[2]))*Pheight+1)-(float(oneline[4]))*0.5*Pheight)
         yminContent = xmlBuilder.createTextNode(str(mathData))
         ymin.appendChild(yminContent)
         bndbox.appendChild(ymin)
         xmax = xmlBuilder.createElement("xmax")
         mathData = int(((float(oneline[1]))*Pwidth+1)+(float(oneline[3]))*0.5*Pwidth)
         xmaxContent = xmlBuilder.createTextNode(str(mathData))
         xmax.appendChild(xmaxContent)
         bndbox.appendChild(xmax)
         ymax = xmlBuilder.createElement("ymax")
         mathData = int(((float(oneline[2]))*Pheight+1)+(float(oneline[4]))*0.5*Pheight)
         ymaxContent = xmlBuilder.createTextNode(str(mathData))
         ymax.appendChild(ymaxContent)
         bndbox.appendChild(ymax)
         object.appendChild(bndbox)

         annotation.appendChild(object)

      f = open(xmlPath+'/'+name[0:-4]+".xml", 'w')
      xmlBuilder.writexml(f, indent='\t', newl='\n', addindent='\t', encoding='utf-8')
      f.close()

makexml("./annotations","./annotation","./images")

一起开启新世界的大门吧😊

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lindsayshuo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值