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))
相关推荐
山烛1 小时前
OpenCV:图像直方图
人工智能·opencv·计算机视觉·图像直方图
荼蘼1 小时前
OpenCV 发票识别全流程:透视变换与轮廓检测详解
人工智能·opencv·计算机视觉
byzy2 小时前
【论文笔记】SpaRC: Sparse Radar-Camera Fusion for 3D Object Detection
论文阅读·深度学习·目标检测·计算机视觉·自动驾驶
☼←安于亥时→❦2 小时前
PyTorch 梯度与微积分
人工智能·pytorch·python
程序员三藏2 小时前
2025最新的软件测试面试八股文(800+道题)
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
Pocker_Spades_A3 小时前
Python快速入门专业版(二十三):for循环基础:遍历字符串、列表与range()函数(计数案例)
python
mahuifa3 小时前
OpenCV 开发 -- 图像阈值处理
人工智能·opencv·计算机视觉
闲人编程3 小时前
图像去雾算法:从物理模型到深度学习实现
图像处理·人工智能·python·深度学习·算法·计算机视觉·去雾
Caaacy_YU3 小时前
多模态大模型研究每日简报【2025-09-10】
论文阅读·人工智能·深度学习·机器学习·计算机视觉
Kyln.Wu4 小时前
【python实用小脚本-211】[硬件互联] 桌面壁纸×Python梦幻联动|用10行代码实现“开机盲盒”自动化改造实录(建议收藏)
开发语言·python·自动化