Python计算机视觉编程练习13:文件(夹)批量更名、图像批量resize

起因

深度学习,需要大量的测试样本和训练样本,从各处“搜刮”来的数据整合起来,容易遇到:图片名(文件夹)长度不一、中英文数字夹杂、图片尺寸不同等问题,导入深度模型无法正常载入图片。

例如:

文件夹包含中文、无序

这里写图片描述

图片包含中文

这里写图片描述

正题

废话不多说,上代码。。。


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

__author__ = "li"

"""
--------------------------------------
#   程序:文件(夹)批量更名、图像批量resize
#   版本:0.1
#   作者:li
#   日期:2016-03-11
#   语言:Python 2.7
--------------------------------------
"""

import os
from PIL import Image
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
from matplotlib.font_manager import FontProperties

font = FontProperties(fname=r'c:\windows\fonts\SimSun.ttc', size=14)

# 获取当前路径
path_abs = os.getcwd()
print u'*****************开始文件名更名操作*****************'
print path_abs
# 遍历当前路径下的文件以及文件目录
for root, dir_name, file_name in os.walk(path_abs):
    # 统计文件夹个数
    num_dir = len(dir_name)
    for idx, item in enumerate(dir_name):
        print u'第', idx, u'个文件正在更名......'
        item_new = 'test_' + '0' * (1 - idx / 10) + str(idx)
        # 原文件路径
        path_dir_old = path_abs + '\\' + item
        # print u'原文件路径:', path_dir_old
        # 新文件路径
        path_dir_new = path_abs + '\\' + item_new
        # print u'新文件路径:', path_dir_new
        # 更名操作
        os.renames(path_dir_old, path_dir_new)
print u'*****************进度报告:文件名更名完毕!*****************'

print u'*****************进度报告:开始图片名更名*******************'
for root1, dir_name1, file_name1 in os.walk(path_abs):
    num1_dir = len(dir_name1)
    for idx1, item1 in enumerate(dir_name1):
        path_dir1 = path_abs + '\\' + item1
        for root2, dir_name2, file_name2 in os.walk(path_dir1):
            for idx2, item2 in enumerate(file_name2):
                # 原路径 + 图片名
                item2_old = path_dir1 + '\\' + item2
                # 新路径 + 图片名(强制转换成jpg格式,数字6制定图片名长度以及0的填充个数)
                item_new2 = 'idx_'+ '0' * (5 - len(str(idx2))) + str(idx2)
                item2_new = path_dir1 + '\\' + item_new2 + '.jpg'
                # 更名
                os.rename(item2_old, item2_new)
                # resize 成指定尺寸大小
                img = Image.open(item2_new)
                img_new = img.resize((220, 220))
                # save 保存
                img_new.save(item2_new)

print u'*****************进度报告:图片更名操作完毕!******************'

效果

文件夹更名效果

这里写图片描述

图片resize+更名效果

这里写图片描述

终极福利

当然这种批处理软件超级多,也很好用呀,分享两个很赞的批处理软件,使用超级简单,就不在附录教程了。。。。多BB一句:不喜勿下啦
这里写图片描述

点击下载

要使用Python的OpenCV库批量调整图片大小,你可以按照以下步骤进行操作: ```python import cv2 import os def batch_resize_images(input_dir, output_dir, size): # 确保输出目录存在 if not os.path.exists(output_dir): os.makedirs(output_dir) # 遍历输入目录中的所有文件 for filename in os.listdir(input_dir): # 获取文件路径 input_path = os.path.join(input_dir, filename) # 检查文件是否为图像文件 if os.path.isfile(input_path) and filename.lower().endswith(('.jpg', '.jpeg', '.png')): # 读取图像 image = cv2.imread(input_path) # 调整图像大小 resized_image = cv2.resize(image, size) # 构造输出文件路径 output_path = os.path.join(output_dir, filename) # 保存调整后的图像 cv2.imwrite(output_path, resized_image) # 调用函数进行批量调整图片大小 input_dir = "input_folder" # 输入目录,包含要调整大小的图片文件 output_dir = "output_folder" # 输出目录,保存调整后的图片文件 size = (500, 500) # 要调整的目标尺寸,例如 (width, height) batch_resize_images(input_dir, output_dir, size) ``` 请将代码中的`input_folder`替换为包含要调整大小的图片文件的实际输入目录,将`output_folder`替换为你希望保存调整后图片的输出目录,将`size`替换为你想要调整的目标尺寸。这段代码将遍历输入目录中的所有图片文件(以.jpg、.jpeg或.png结尾),将它们调整为指定的尺寸,并保存到输出目录中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

微风❤水墨

你的鼓励是我最大的动力!

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

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

打赏作者

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

抵扣说明:

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

余额充值