位置: IT常识 - 正文

使用Python批量旋转,镜像图片(python 批量)

编辑:rootadmin
使用Python批量旋转,镜像图片 前言

推荐整理分享使用Python批量旋转,镜像图片(python 批量),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python 批量,python批量旋转图片,python 批量生成变量,python批量执行命令,python 批量,python 批量,python批量旋转图片,python批量旋转图片,内容如对您有帮助,希望把文章链接给更多的朋友!

当我们进行大量图像处理时,经常需要旋转或镜像图像。但一张张处理图片费神又费力,有什么好的办法可以帮助我们快速搞定这个问题呢?这时候我们可以写个简单的python程序来搞定它!~

在Python中,我们可以使用Pillow库(Python Imaging Library)进行图像处理。Pillow库提供了很多函数和类,使得图像旋转和镜像变得容易。

本文将会以一下三张图片为例,在每一部分将会简单介绍函数后附上批量处理图片的代码,零基础的小伙伴也可以轻松使用嗷~

〇、准备工作,PIL库安装

一、图像旋转

二、图片镜像

〇、准备工作,PIL库安装使用Python批量旋转,镜像图片(python 批量)

可以通过以下命令在Python中安装Pillow库(它是Python Imaging Library的分支版本):

pip install Pillow

此外,还可以通过Anaconda或Miniconda等科学计算发行版进行安装。如果你使用Anaconda,可以使用以下命令来安装Pillow库:

conda install pillow一、图像旋转

对于图像旋转,可以使用Pillow库中的rotate()函数,可以通过指定旋转角度来实现。具体来说,我们可以使用Image.rotate(angle)函数(其中angle为旋转角度,单位为度)。例如,我们想将图像旋转90度,可以这样做:

from PIL import Imageimage = Image.open("path/to/image.jpg") # 读取图片,这里要注意图片的格式rotated_image = image.rotate(90, expand=True) #确定旋转角度

在这个例子中,我们打开了一张图片,然后使用rotate()函数将其旋转了90度。我们可以使用show()函数来查看或是用.save(path)直接保存旋转后的图像:

rotated_image.show() #查看图片rotated_image.save('rotated_image.jpg') #保存图片当我们希望可以批量旋转一个文件夹里的图片90°180°270°时,我们可以这么做:from PIL import Imageimport os# 设置输入和输出目录input_dir = '/path/to/input/directory/'output_dir = '/path/to/output/directory/'# 循环输入目录中的所有JPEG图像for filename in os.listdir(input_dir): #只可以处理jpg和jpeg后缀下的程序,如果你的图片是别的后缀,请直接更改点后的文件格式 if filename.endswith('.jpg') or filename.endswith('.jpeg'): # 打开图像 img = Image.open(os.path.join(input_dir, filename)) # 旋转图像并保存 这里可以直接添加或删除以选取你需要的旋转角度 for angle in [90, 180, 270]: rotated_img = img.rotate(angle, expand=True) rotated_img.save(os.path.join(output_dir, f'{angle}_{filename}'))成品如下~!

二、图片镜像

对于图像镜像,可以使用Pillow库中的transpose()函数,可以通过指定翻转模式来实现。具体来说,我们可以使用Image.transpose(mode)函数,其中mode为翻转模式,可以为Image.FLIP_LEFT_RIGHT(水平翻转)或Image.FLIP_TOP_BOTTOM(垂直翻转)。例如,如果我们想将图像水平翻转,可以这样做:

from PIL import Imageimage = Image.open("path/to/image.jpg")mirrored_image = image.transpose(Image.FLIP_LEFT_RIGHT)

在这个例子中,我们打开了一张图像,然后使用transpose()函数将其水平翻转。我们可以使用show()或是用.save(path)函数来查看或保存翻转后的图像:

mirrored_image.show()mirrored_image.save('mirrored_image.jpg')当我们希望可以批量水平和垂直镜像一个文件夹里的图片时,我们可以这么做:from PIL import Imageimport os# 设置输入和输出目录input_dir = '/path/to/input/directory/'output_dir = '/path/to/output/directory/'# 循环输入目录中的所有JPEG图像, 这里如果你是别的类型格式图片,直接更改点后图片类型即可for filename in os.listdir(input_dir): if filename.endswith('.jpg') or filename.endswith('.jpeg'): # 打开图像 img = Image.open(os.path.join(input_dir, filename)) # 水平镜像并保存 mirrored_img = img.transpose(Image.FLIP_LEFT_RIGHT) mirrored_img.save(os.path.join(output_dir, f'horiz_{filename}')) # 垂直镜像并保存 mirrored_img = img.transpose(Image.FLIP_TOP_BOTTOM) mirrored_img.save(os.path.join(output_dir, f'vert_{filename}'))

成品如下~!

本文链接地址:https://www.jiuchutong.com/zhishi/299653.html 转载请保留说明!

上一篇:C++指针与其它复合类型(c++如何给指针赋值)

下一篇:Vue路由导航报错:NavigationDuplicated: Avoided redundant navigation to current location解决方法(vue的路由跳转了,可是页面没有变化)

  • 如何利用新浪博客推广自己的网店?(如何利用新浪博客赚钱)

  • 微信读书有电脑版的吗(微信读书有电脑客户端吗)

  • 微信加群的方法(微信加群的方法是什么)

  • 抖音取消赞会提醒对方吗(抖音取消赞后会发现吗)

  • 爱奇艺没有字幕怎么调出来(爱奇艺没有字幕设置)

  • 华为手机可以定位别人在哪里吗 (华为手机可以定位苹果手机吗)

  • 充电器接口类型(老式手机充电器接口类型)

  • 拼多多怎么不让别人加我好友(拼多多怎么不让好友看见我买了什么)

  • 苹果第一代手机名字(苹果第一代手机销量)

  • 苹果手机如何在锁屏时录屏(苹果手机如何在电视上投屏)

  • 显卡位宽高低有什么用(显卡位宽重要还是显存重要)

  • 微信怎样发长视频给好友(微信怎样发长视频给群)

  • 内存条优先插哪个槽(电脑内存条优先插哪个插槽)

  • ios12软件在哪里信任(苹果12的应用软件在哪里)

  • mate20支持反向充电吗(华为mate20支持反向充电不)

  • steam兑换码怎么用(steam兑换码怎么用手机版)

  • 上飞机什么时候关手机(上飞机什么时候开飞行模式)

  • word小写变大写怎么弄(word小写变大写字母)

  • v1809a是幻彩版吗(型号是v1809a是标准版还是幻彩版)

  • 微信经常无响应怎么办(微信经常无响应怎么解决)

  • 十进制小数转二进制(十进制小数转二进制方法)

  • Linux下源码安装的经验详解(linux源码安装软件的方法介绍)

  • 自己给笔记本更换内存条步骤(自己给笔记本更换硬盘)

  • element-UI组件之日期时间选择器与时间格式转化(element_ui)

  • <一>类,对象,this指针(对象是类的实例,一个对象必须属于一个已知的类)

  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设 电脑维修 湖南楚通运网络