深度学习—数据处理常用代码Python合集

个人微信公众号:AI研习图书馆

ID:(Art-Intelligence)
欢迎关注,交流学习,共同进步~

1. 根据txt文件中图片的名字批量提取对应的图片并保存到另一个文件夹

# -*- coding: UTF-8 -*- 
#!/usr/bin/env python
import sys
import re
from PIL import Image
sys.path.append('E:\\CODE')
#f1 = open('E:\CODE\TX\dir.txt','r')
#f2 = open('E:\CODE\TX\dir.txt','w+')
#for line in f1.readlines():
#    if re.findall(' 1',line): #查找“空格1”的行 每行的格式000005 -1\n 000007
#       f2.write(line)#把查找到的行写入f2.
#f1.close()
#f2.close()
#data = []
import numpy as np
 
data = []
for line in open("E:/CODE/TX/dir.txt", "r"):  # 设置文件对象并读取每一行文件
    data.append(line)
#print(data)
#f3 = open('E:\CODE\TX\dir.txt','r')
for a in data:
#  print(a)
  #line3=line2[:-4] #读取每行去掉后四位的数#
  im = Image.open('E:/CODE/wu3haomi/segJPEGImages/{}'.format(a[:-1]))#打开改路径下的line3记录的的文件名
  im.save('E:/CODE/wu3haomi/chenxutiqude/{}'.format(a[:-1])) #把文件夹中指定的文件名称的图片另存到该路径下
  im.close()

2. 重命名xml文件类别

# -*- coding: UTF-8 -*-
#程序功能:批量修改VOC数据集中xml标签文件的标签名称

import os
import xml.etree.ElementTree as ET

def changelabelname(inputpath):
    listdir = os.listdir(inputpath)
    for file in listdir:
        if file.endswith('xml'):
            file = os.path.join(inputpath,file)
            tree = ET.parse(file)
            root = tree.getroot()
            for object1 in root.findall('object'):
                for sku in object1.findall('name'):#查找需要修改的名称
                    if (sku.text == 'person'): #‘preName’为修改前的名称
                       sku.text = 'people'#‘TESTNAME’为修改后的名称
                       tree.write(file,encoding='utf-8')#写进原始的xml文件并避免原始xml中文字符乱码
                    else:
                        pass
        else:
            pass

if __name__ == '__main__':
    inputpath = 'D:/download1/COCO2017/xml' #此处替换为自己的路径
    changelabelname(inputpath)

3. png-jpg

# -*-coding:UTF-8-*-
# 日常使用代码:将某个文件夹及其子目录下的所有.png图片改为.JPG格式

import os
import re

path = r"E:\数据集\行人数据\person"
file_walk = os.walk(path)
fileNum = 0
filesPathList = []
for root, dirs, files in file_walk:
    # print(root, end=',')
    # print(dirs, end=',')
    # print(files)
    for file in files:
        fileNum = fileNum + 1
        filePath = root + '/' + file
        # print(filePath)
        filesPathList.append(filePath)
        protion = os.path.splitext(filePath)
        # print(protion[0],protion[1])

        if protion[1].lower() == '.png':
            print("正在处理:" + filePath)
            newFilePath = protion[0] + '.JPG'
            os.rename(filePath, newFilePath)

print('done')

4. 提取voc数据集制定类别数据

# -*-coding:UTF-8-*-
# 提取voc数据集指定类别数据
import os
import os.path
import shutil

fileDir_ann = r'E:/数据集/voc2012/VOCdevkit/VOC2012/Annotations/'
fileDir_img = r'E:/数据集/voc2012/VOCdevkit/VOC2012/JPEGImages/'

# 存放包含需要的类的图片
saveDir_img = r'E:/数据集/voc2012/person/'

if not os.path.exists(saveDir_img):
    os.mkdir(saveDir_img)

names = locals()

for files in os.walk(fileDir_ann):
    # 遍历Annotations中的所有文件
    for file in files[2]:
        print(file + "-->start!")

        # 存放包含需要的类的图片对应的xml文件
        saveDir_ann = r'E:/数据集/voc2012/person/xml/'

        if not os.path.exists(saveDir_ann):
            os.mkdir(saveDir_ann)
        fp = open(fileDir_ann + file)
        saveDir_ann = saveDir_ann + file
        fp_w = open(saveDir_ann, 'w')
        classes = ['aeroplane', 'bicycle', 'bird', 'boat', 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AI研习图书馆

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

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

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

打赏作者

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

抵扣说明:

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

余额充值