图像算法-数据预处理

1、python保存深度训练过程至txt文件。

with open("result.txt", "a") as f:   # 打开文件以便写入
	print("image_name: ", image_name,file=f)

2、python批量更改图片后缀名

import os

rootdir = r"E:\sf_data_matting\SF_SOD_data0119\Mask"
# newdir = r"E:\mask_png"
# 获取目录下文件名清单
files = os.listdir(rootdir)

# 对文件名清单里的每一个文件名进行处理
for filename in files:
    portion = os.path.splitext(filename)  # portion为名称和后缀分离后的列表   #os.path.splitext()将文件名和扩展名分开
    if portion[1] == ".jpg":  # 如果为jpg则更改名字
        newname = portion[0] + ".png"  # 要改的新后缀  #改好的新名字
        print(filename)  # 打印出要更改的文件名
        #os.chdir(newdir)  # 存放到新路径
        os.chdir(rootdir)  # 覆盖到原路径
        os.rename(filename, newname)  # 在工作路径下对文件名重新命名

3、根据文件名包含的某些特定字符,筛选符合该特点的图片到另外一个文件夹。

import os
import shutil

new_img_folder = r'C:\Users\Administrator\Desktop\test' #保存路径
dir_path = r'E:\sf_data_matting\SF_SOD_data0119\Mask'#源文件夹

for root,dirs,files in os.walk(dir_path):
    for file in files:
        if file.count('_matte') == 1:
            shutil.move(os.path.join(root,file),new_img_folder)#移动,复制为shutil.copy()
            print("YES!=",file)

4、根据image文件夹的图片名,从mask文件夹挑出相应的图片,保存到新文件夹。(image和mask文件夹的图片前缀名相同,后缀名不同)

import os
import shutil

rootdir = r"C:\Users\Administrator\Desktop\Image"#image文件夹
files = os.listdir(rootdir)

new_img_folder = r'C:\Users\Administrator\Desktop\Mask'#存放路径
dir_path = r'E:\sf_data_matting\AIM-500\AIM-500\mask'#根据image的文件名,从这个文件夹中挑选相应的mask(image和mask仅后缀名不同)

for file in files:
     portion = os.path.splitext(file)
     shutil.copy(os.path.join(dir_path, portion[0] + ".png"), new_img_folder)	#复制
     #shutil.move(os.path.join(dir_path, portion[0] + ".png"), new_img_folder)	#移动
     print("YES!=", file)

5、python读取文件夹下的所有图片名,保存到txt文件。

#!/usr/bin/python
#coding:utf-8

import os

path_imgs = "./DUTS-TR/DUTS-TR/DUTS-TR-Image/"#文件夹路径
for files in os.listdir(path_imgs):
    print(files)#打印图片文件名
    img_path = path_imgs+ files
    with open("./sf_list.txt", "a") as f:
        f.write(str(img_path) + '\n')
        

6、python根据image文件夹下的图片名,将image和相应mask的图片路径按行写入到txt文件。(image和mask仅后缀名不同)

#!/usr/bin/python
#coding:utf-8

import os
import shutil

source_path = "./DUTS-TR-Image"
files = os.listdir(source_path)
for file in files:
    portion = os.path.splitext(file)
    with open("./sf_list.txt", "a") as f:
        f.write("DUTS-TR-Image/" + str(file) + ' '+"DUTS-TR-Mask/"+ portion[0] + ".png" + "\n")
        print("DUTS-TR-Image/" + str(file) + ' '+"DUTS-TR-Mask/"+ portion[0] + ".png" + "\n")

7、批量调整文件夹下所有图片的size。

import os.path
import glob
from PIL import Image

def convert(file,outdir,width=320,height=320):
    img=Image.open(file)
    try:
        new_img=img.resize((width,height),Image.BILINEAR)        new_img.save(os.path.join(outdir,os.path.basename(file)))
    except Exception as e:
        print(e)
for file in glob.glob("F:\\F_ppm100_MODnet\\*.jpg"):#源图片路径
    convert(file,"F:\\resize_ppm100_MODnet")#保存路径
    print("Ok!=",file)

8、python批量找到包含空格的文件名,并删除空格

import os

# 输入文件夹地址
path = "./val/fg"
files = os.listdir(path)

# 获取旧名和新名
i = 0
for file in files:
    # old 旧名
    if file.count(' ') == 1:
        old = path + os.sep + file
        print("file=",file)
        print("old--=",old)
        # new是新名,这里的操作是删除了空格
        new = path + os.sep + file.replace(' ','')
        print("--ok!---newname=",new)
        # 新旧替换
        os.rename(old,new)
        i+=1
print("finish!")

9、python批量转换文件名后缀

import os

class BatchRename():

    def __init__(self):
        self.path = './val/Image'

    def rename(self):
        filelist = os.listdir(self.path)

        for item in filelist:
            portion = os.path.splitext(item)
            if portion[1] == ".jpeg":
                src = os.path.join(os.path.abspath(self.path), item)
                dst = os.path.join(os.path.abspath(self.path), portion[0] + '.jpg')
                try:
                    os.rename(src, dst)
                    print ('converting %s to %s ...' % (src, dst))
                except:
                    continue
        print ('ok!')

if __name__ == '__main__':
    demo = BatchRename()
    demo.rename()

10、批量二值化图片

#!/usr/bin/python3
#!--*-- coding:utf-8 --*--
import cv2
import os

source_path = os.path.abspath(r'E:\sf_data_matting\MASK')  # 源文件夹
for root, dirs, files in os.walk(source_path):
    for file in files:
        src_file = os.path.join(root, file)
        read = cv2.imread(src_file,cv2.IMREAD_UNCHANGED)
        print(read.shape)
        png_img = cv2.cvtColor(read[:, :, :3], cv2.COLOR_BGR2RGB)
        alpha = png_img[:, :, 3]
        cv2.imwrite(src_file, alpha)
        print(src_file)
print('Finish!')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值