当前位置: 首页 > news >正文

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

图像批量重命名:

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

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

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

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

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+=1yaocai=["bohe","chenpi",'chuanbeimu',"dahuang","danggui"]
for y in yaocai:folder_path = "../yaocai_test/" + yprefix = y# 调用函数进行批量重命名操作batch_rename_images(folder_path, prefix)

图像批量旋转:

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

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

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

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

from PIL import Image
import osyaocai_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))

相关文章:

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

图像批量重命名: 使用batch_rename_images函数实现对多个文件夹下面的图片进行重命名操作 先检查文件名的后缀,使用了.endswith()方法来判断文件名是否以.jpg、.png或.JPG结尾,判断是否为图片文件 然后构造新的文件路径new_filepath&#…...

第五天 用Python批量处理Excel文件,实现自动化办公

用Python批量处理Excel文件,实现自动化办公 一、具体需求 有以下N个表,每个表的结构一样,如下: 需要把所有表数据汇总,把每个人的得分、积分分别加起来,然后按总积分排名,总积分一致时&#xff…...

mybatis整合(手动添加jar包方式)

操作步骤 创建数据库 建立user表 放入数据 1、创建javaweb工程并添加Jar包 用到的jar包 junit 用于测试 mybatis框架&#xff1a;mybatis-3.5.9.jar mysql数据库&#xff1a;mysql-connector-java-8.0.28.jar 2、添加MyBatis核心配置文件 <?xml version"1.0"…...

leetcode - 矩阵区域和

1314. 矩阵区域和 - 力扣&#xff08;LeetCode&#xff09; 给你一个 m x n 的矩阵 mat 和一个整数 k &#xff0c;请你返回一个矩阵 answer &#xff0c;其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和&#xff1a; i - k < r < i k, j - k < c …...

头歌JUnit单元测试相关实验进阶

JUnit是一个由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架&#xff08;regression testing framework&#xff09;&#xff0c;主要供 Java 开发人员编写单元测试。Junit在极限编程和重构中被极力推荐使用&#xff0c;因为它可以大大地提高开发的效率。 Junit的特性&…...

【kafka实践】11|消费位移提交

消费者位移 消费者位移这一节介绍了消费者位移的基本概念和消息格式&#xff0c;本节我们来聊聊消费位移的提交。 Consumer 需要向 Kafka 汇报自己的位移数据&#xff0c;这个汇报过程被称为提交位移&#xff08;Committing Offsets&#xff09;。因为 Consumer 能够同时消费…...

Mac卸载、安装Python

卸载 说明 对于删除 Python&#xff0c;我们首先要知道其具体都安装了什么&#xff0c;实际上&#xff0c;在安装 Python 时&#xff0c;其自动生成&#xff1a; Python framework&#xff0c;即 Python 框架&#xff1b;Python 应用目录&#xff1b;指向 Python 的连接。 …...

算法——滑动窗口

滑动窗口大致分为两类&#xff1a;一类是窗口长度固定的&#xff0c;即left和right可以一起移动&#xff1b;另一种是窗口的长度变化&#xff08;例如前五道题&#xff09;&#xff0c;即right疯狂移动&#xff0c;left没怎么动&#xff0c;这类题需要观察单调性(即指针)等各方…...

带头双向循环链表:一种高效的数据结构

&#x1f493; 博客主页&#xff1a;江池俊的博客⏩ 收录专栏&#xff1a;数据结构探索&#x1f449;专栏推荐&#xff1a;✅cpolar ✅C语言进阶之路&#x1f4bb;代码仓库&#xff1a;江池俊的代码仓库&#x1f525;编译环境&#xff1a;Visual Studio 2022&#x1f389;欢迎大…...

C++基础 -34- 输入输出运算符重载

输出运算符重载格式 ostream & operator<<(ostream &out,person a) {cout << a.a << endl;return out; }举例输出运算符重载 #include "iostream"using namespace std;class person {public:person(int a):a(a){}int a; };ostream &…...

MimicGen论文分析与资料汇总

MimicGen论文分析与资料汇总 前言论文分析相关资料汇总 前言 论文分析 相关资料汇总 Paper:MimicGen: A Data Generation System for Scalable Robot Learning using Human Demonstrations mimicgen.github 破局利刃&#xff01;英伟达合成数据新成果&#xff1a;为机器人造…...

JAVA-每一页PDF转图片

结论&#xff1a;1、iText几乎找不到如何PDF转图片的信息&#xff0c;但能找到获取到PDF里面的图片并保存下来的信息&#xff1b;2、PDF box满大街都是参考代码&#xff08;下面会附上一个作为参考&#xff09;&#xff1b;3、收费的库使用起来更简单&#xff0c;但就是要收费&…...

VS安装QT VS Tools编译无法通过

场景&#xff1a; 项目拷贝到虚拟机内部后&#xff0c;配置好相关环境后无法编译&#xff0c;安装QT VS Tools后依旧无法编译&#xff0c;查找资料网上说的是QT工具版本不一致导致的&#xff0c;但反复试了几个版本后依旧无法编译通过。错误信息如下&#xff1a; C:\Users\Ad…...

【C语言之 CJson】学CJson看这一篇就够了

文章目录 前言一、下载CJson二、创建一个json2.1 创建json对象cJSON类型详解 2.2 创建键值对2.3 添加嵌套的 JSON 对象2.4 添加数组创建数组添加元素到数组添加数组到obj 2.5 将 JSON 对象转为字符串2.6 释放内存2.7 示例代码 三、解析json3.1 解析json root3.2 把一个key解析出…...

使用Java语言实现字母之间的大小写转换

这个类的作用为实现字母之间的大小写转换&#xff0c;通过加减32来完成。 输入的代码 import java.util.Scanner; public class WordChangeDemo {public static void main(String[] args){try (Scanner in new Scanner(System.in)) {System.out.println("请输入您要进…...

Docker的数据持久化;Docker网络;Dockerfile编写

Docker的数据持久化&#xff1b;Docker网络&#xff1b;Dockerfile编写&#xff1b; 文章目录 Docker的数据持久化&#xff1b;Docker网络&#xff1b;Dockerfile编写&#xff1b;**Docker的数据持久化**1&#xff09;将本地目录映射到容器里2&#xff09;数据卷3&#xff09;将…...

OpenHarmony亮相MTSC 2023 | 质量效率共进,赋能应用生态发展

11月25日&#xff0c;MTSC 2023第十二届中国互联网测试开发大会在深圳登喜路国际大酒店圆满举行。大会以“软件质量保障体系和测试研发技术交流”为主要目的&#xff0c;旨在为行业搭建一个深入探讨和交流的桥梁和平台。OpenAtom OpenHarmony&#xff08;简称“OpenHarmony”&a…...

windows11 调整鼠标灵敏度方法

首先 我们打开电脑设置 或者在 此电脑/此计算机/我的电脑 右击选择属性 然后 有的电脑 左侧菜单中 直接就有 设备 然后在设备中直接就可以找到 鼠标 选项 调整光标速度即可 如果操作系统和我的一样 可以直接搜索鼠标 然后 选择 鼠标设置 然后 调整上面的鼠标指针速度即可...

贪心算法个人见解

目录 基本思想&#xff1a; 贪心算法的步骤&#xff1a; 示例&#xff1a; 贪心算法&#xff08;Greedy Algorithm&#xff09;是一种基于贪心策略的算法范式&#xff0c;它在每一步选择中都采取当前状态下的最优选择&#xff0c;而不考虑全局最优解。贪心算法通常适用于那些…...

Win中Redis部署与配置

1.下载msi版本 下载传送门 2.双击next-->next安装安装 3.密码配置以及开机自启 在配置文件中配置相应配置进行配置密码以及端口和ip port 6379指定 Redis 监听端口&#xff0c;默认端口为 6379&#xff0c;作者在自己的一篇博文中解释了为什么选用 6379 作为默认端口&…...

【Coze】从零开始:AI Agent开发平台的入门指南

1. Coze平台初体验&#xff1a;零基础也能玩转AI开发 第一次接触Coze时&#xff0c;我完全被它的易用性震惊了。作为一个没有任何编程背景的市场专员&#xff0c;我居然在半小时内就做出了能自动回复客户咨询的AI助手。这个由字节跳动开发的AI Agent开发平台&#xff0c;真正实…...

DeepSeek-V3 vs V3-Base:开发者如何根据项目需求选择最适合的模型?

DeepSeek-V3 vs V3-Base&#xff1a;开发者如何根据项目需求选择最适合的模型&#xff1f; 当你在GitHub上搜索代码补全工具&#xff0c;或是在Kaggle上寻找数学竞赛的解题思路时&#xff0c;可能会被各种AI模型的选择搞得眼花缭乱。作为开发者&#xff0c;我们需要的不是"…...

Heritrix3源码深度解析:从CrawlURI到ProcessorChain的执行流程

Heritrix3源码深度解析&#xff1a;从CrawlURI到ProcessorChain的执行流程 【免费下载链接】heritrix3 Heritrix is the Internet Archives open-source, extensible, web-scale, archival-quality web crawler project. 项目地址: https://gitcode.com/gh_mirrors/he/herit…...

嵌入式AI新篇章:Qwen3-ASR-0.6B在边缘计算设备上的部署与优化

嵌入式AI新篇章&#xff1a;Qwen3-ASR-0.6B在边缘计算设备上的部署与优化 1. 引言&#xff1a;当语音识别遇见边缘计算 想象一下&#xff0c;你对着一个巴掌大的智能音箱说话&#xff0c;它几乎在你话音落下的瞬间就理解了你的意思&#xff0c;并且完全不需要连接云端。或者&…...

Qwen3-VL:30B开源可部署优势展示:无需License、无调用限制、全链路私有化保障

Qwen3-VL:30B开源可部署优势展示&#xff1a;无需License、无调用限制、全链路私有化保障 1. 为什么你需要一个私有化的多模态大模型&#xff1f; 想象一下这个场景&#xff1a;你的团队需要处理大量产品图片&#xff0c;并生成对应的营销文案。你打开某个在线AI工具&#xf…...

Pixel Epic智识终端入门:动态卷轴输出中断恢复与断点续写功能

Pixel Epic智识终端入门&#xff1a;动态卷轴输出中断恢复与断点续写功能 1. 认识Pixel Epic智识终端 Pixel Epic智识终端是一款基于AgentCPM-Report大模型构建的研究报告辅助工具。与传统AI工具不同&#xff0c;它将枯燥的科研过程转化为一场像素风格的RPG冒险。在这个虚拟世…...

Nomic-Embed-Text-V2-MoE在AIGC内容审核中的应用:识别生成文本的违规风险

Nomic-Embed-Text-V2-MoE在AIGC内容审核中的应用&#xff1a;识别生成文本的违规风险 最近和几个做AIGC应用的朋友聊天&#xff0c;大家普遍提到一个头疼的问题&#xff1a;用户用模型生成的文本&#xff0c;时不时会冒出一些不合规的内容&#xff0c;比如涉及不当言论、暴力或…...

Qwen2.5-14B-Instruct多轮记忆|像素剧本圣殿长剧本连贯性保障机制

Qwen2.5-14B-Instruct多轮记忆&#xff5c;像素剧本圣殿长剧本连贯性保障机制 1. 专业剧本创作的新范式 在创意写作领域&#xff0c;剧本创作一直面临着角色一致性、情节连贯性和风格统一性的挑战。传统创作工具往往只能提供片段式的辅助&#xff0c;而"像素剧本圣殿&qu…...

手把手教你搞定Pico企业版串流:从‘Pico互联’安装到解决手势追踪失效问题

企业版Pico串流开发实战&#xff1a;破解手势追踪失效的完整方案 当你在Pico企业版设备上进行Unreal Engine开发时&#xff0c;是否遇到过这样的困境&#xff1a;明明按照官方文档操作&#xff0c;PC串流却始终无法建立连接&#xff1f;更令人抓狂的是&#xff0c;好不容易解决…...

【DeepSeek-R1背后的技术】系列七:冷启动——从“零”到“一”的智能启蒙

1. 冷启动&#xff1a;AI模型的"启蒙教育" 想象一下&#xff0c;你面前站着一个刚出生的婴儿&#xff0c;他对这个世界一无所知。如果你直接把他扔进大学课堂&#xff0c;会发生什么&#xff1f;他可能会哭闹、听不懂任何内容&#xff0c;甚至产生恐惧心理。这就是一…...