Python批量图像处理--图片重命名、图片旋转

图像批量重命名:

使用batch_rename_images函数实现对多个文件夹下面的图片进行重命名操作

先检查文件名的后缀,使用了.endswith()方法来判断文件名是否以.jpg.png.JPG结尾,判断是否为图片文件

然后构造新的文件路径new_filepathos.path.join函数将文件名和文件夹路径拼接起来。

最后使用os.rename函数将旧的文件路径重命名为新的文件路径

python 复制代码
import os
def batch_rename_images(folder_path, prefix):
    # 获取指定文件夹下的所有文件
    files = os.listdir(folder_path)
    cnt=1
    # 遍历文件列表
    for filename in files:
        # 构造旧的文件路径
        old_filepath = os.path.join(folder_path, filename)
        print(old_filepath)

        # 检查是否为图片文件
        if filename.endswith(".jpg") or filename.endswith(".png")  or filename.endswith(".JPG"):
            # 构造新的文件名
            new_filename = prefix + "-"+str(cnt)+".jpg"

            # 构造新的文件路径
            new_filepath = os.path.join(folder_path, new_filename)

            # 重命名文件
            os.rename(old_filepath, new_filepath)
            cnt+=1

yaocai=["bohe","chenpi",'chuanbeimu',"dahuang","danggui"]
for y in yaocai:
    folder_path = "../yaocai_test/" + y
    prefix = y
    # 调用函数进行批量重命名操作
    batch_rename_images(folder_path, prefix)

图像批量旋转:

主要使用python的PIL库实现,在图像对象上调用rotate()方法,它接受两个参数:angleexpand

angle参数指定旋转的角度,以度为单位。正值表示顺时针旋转,负值表示逆时针旋转。

expand参数是可选的,当expandTrue时,旋转后的图像会被调整大小,以适应整个旋转后的图像而不裁剪任何部分。如果expandFalse或未指定,则旋转后的图像将被裁剪为原始图像的大小。

下面实现读取多个文件夹,并对每个文件夹的图片旋转并保存在原文件夹中

python 复制代码
from PIL import Image
import os

yaocai_list=["bohe","chenpi",'chuanbeimu',"dahuang","danggui"]
for yaocai in yaocai_list:
    folder_path = "../yaocai_test/" + yaocai #文件路径
    output_folder_path = "../yaocai_test/" + yaocai # 保存文件的路径
    for filename in os.listdir(folder_path):
        file_path = os.path.join(folder_path, filename)
        # 图片统一为JPG格式,所以只需要看是不是jbg就行了
        if filename.endswith(".jpg"):
            im = Image.open(file_path)
            # 将图像对象转换为RGB模式
            im = im.convert("RGB")
            angle=90
            # 对图像对象进行90度的旋转
            im = im.rotate(angle, expand=True)
            new_filename = f"{angle}_"+filename  # 新的文件名
            im.save(os.path.join(output_folder_path, new_filename))
相关推荐
choke233几秒前
[特殊字符] Python异常处理
开发语言·python
玄同7651 小时前
从 0 到 1:用 Python 开发 MCP 工具,让 AI 智能体拥有 “超能力”
开发语言·人工智能·python·agent·ai编程·mcp·trae
小瑞瑞acd1 小时前
【小瑞瑞精讲】卷积神经网络(CNN):从入门到精通,计算机如何“看”懂世界?
人工智能·python·深度学习·神经网络·机器学习
火车叼位2 小时前
也许你不需要创建.venv, 此规范使python脚本自备依赖
python
火车叼位2 小时前
脚本伪装:让 Python 与 Node.js 像原生 Shell 命令一样运行
运维·javascript·python
孤狼warrior2 小时前
YOLO目标检测 一千字解析yolo最初的摸样 模型下载,数据集构建及模型训练代码
人工智能·python·深度学习·算法·yolo·目标检测·目标跟踪
Katecat996632 小时前
YOLO11分割算法实现甲状腺超声病灶自动检测与定位_DWR方法应用
python
玩大数据的龙威3 小时前
农经权二轮延包—各种地块示意图
python·arcgis
ZH15455891313 小时前
Flutter for OpenHarmony Python学习助手实战:数据库操作与管理的实现
python·学习·flutter
belldeep3 小时前
python:用 Flask 3 , mistune 2 和 mermaid.min.js 10.9 来实现 Markdown 中 mermaid 图表的渲染
javascript·python·flask