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))
相关推荐
max5006002 小时前
基于深度学习的污水新冠RNA测序数据分析系统
开发语言·人工智能·python·深度学习·神经网络
Sunhen_Qiletian2 小时前
计算机视觉前言-----OpenCV库介绍与计算机视觉入门准备
人工智能·opencv·计算机视觉
zoujiahui_20183 小时前
vscode中创建python虚拟环境的方法
ide·vscode·python
小王爱学人工智能5 小时前
5分钟了解OpenCV
人工智能·opencv·计算机视觉
杨荧5 小时前
基于大数据的美食视频播放数据可视化系统 Python+Django+Vue.js
大数据·前端·javascript·vue.js·spring boot·后端·python
格林威6 小时前
工业相机使用 YOLOv8深度学习模型 及 OpenCV 实现目标检测简单介绍
人工智能·深度学习·数码相机·opencv·yolo·目标检测·计算机视觉
牛客企业服务6 小时前
AI面试系统助手深度评测:6大主流工具对比分析
数据库·人工智能·python·面试·职场和发展·数据挖掘·求职招聘
囚~徒~6 小时前
uwsgi 启动 django 服务
python·django·sqlite
qq_526099137 小时前
VC6800智能相机:赋能智能制造,开启AI视觉新纪元
图像处理·计算机视觉·自动化·相机
一起搞IT吧7 小时前
内存泄漏系列专题分析之三十二:高通相机CamX ION/dmabuf内存管理机制CmdBuffer
android·图像处理·数码相机