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

这篇具有很好参考价值的文章主要介绍了使用Python批量旋转,镜像图片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

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

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

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

python批量旋转图片角度,图像处理,python,图像处理,计算机视觉,深度学习,人工智能


〇、准备工作,PIL库安装

一、图像旋转

二、图片镜像


〇、准备工作,PIL库安装

可以通过以下命令在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 Image

image = 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 Image
import 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}'))

成品如下~!

python批量旋转图片角度,图像处理,python,图像处理,计算机视觉,深度学习,人工智能


二、图片镜像

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

from PIL import Image

image = 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 Image
import 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}'))

成品如下~!

python批量旋转图片角度,图像处理,python,图像处理,计算机视觉,深度学习,人工智能文章来源地址https://www.toymoban.com/news/detail-788752.html

到了这里,关于使用Python批量旋转,镜像图片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python实现图像旋转到指定角度

    Python实现图像旋转到指定角度 在日常的图像处理中,我们有时需要将一张图片旋转到指定的角度,从而达到预期的效果。本文将介绍如何使用Python实现图像的旋转,并给出代码实现。 首先,我们需要导入必要的库:OpenCV和NumPy。其中,OpenCV用来读取图片和进行图像处理,Nu

    2024年02月08日
    浏览(58)
  • 【FPGA图像处理】——DDR仲裁、多输入源拼接、旋转任意角度、突发长度修改、任意地址读取。

    前言:做FPGA大赛期间遇到的问题,自己coding过程。 包含:hdmi、摄像头等多输入源的拼接;了解DDR以及多种DMA传输方式,修改底层突发长度以及存储位宽;单输入源任意角度旋转(无需降低帧率)。 写这篇文章的原因呢,是因为之前参加FPGA大赛的时候遇到很多问题找不到系

    2024年02月05日
    浏览(44)
  • Open CV 图像处理基础:(六)在Java中使用 Open CV进行图片翻转和图片旋转

    在Java中使用OpenCV进行图片翻转和旋转是一种基本的图像处理技术,广泛应用于计算机视觉、图像编辑和人工智能领域。OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它提供了许多常见的图像处理和分析功能,旨在为实时的图像处理提供高效

    2024年02月01日
    浏览(51)
  • python图像处理(旋转)

    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】         除了图像镜像之外,另外一个经常遇到的、差不多的功能就是图像旋转。旋转分成顺时针旋转和逆时针旋转两种情况。但是对于isp来说,一般旋转的角度都是提前设置好的,比如只支

    2024年02月12日
    浏览(52)
  • 使用Python批量拼接图片

    当需要将多张图像拼接成一张更大的图像时,通常会用到图片拼接技术。这种技术在许多领域中都有广泛的应用,例如计算机视觉、图像处理、卫星图像、地理信息系统等等。在实际应用中,拼接图像可以用于创建全景图像、地图、海报、广告牌等等。 本文将使用以下四张图

    2023年04月15日
    浏览(36)
  • 使用Python批量转换彩色图片到灰度图片

    当涉及到图像处理和计算机视觉时,有时需要将彩色图片转换为灰度图片,一张一张使用PS等工具转换十分复杂且没有必要。今天介绍的这种方法用到了Pillow库。使用Pillow库来打开,加载并转换彩色图像,并将图像储存在另一个文件夹里。具体步骤如下所示。 目录  〇、准备

    2024年02月05日
    浏览(69)
  • 使用python批量裁剪图片为目标大小

    当进行深度学习任务如进行训练时,图片的大小可能导致显存不足,一个方法是对图片直接进行resize,这个会导致图片细节不足;另一个是对图片进行裁剪,裁剪成小的尺寸以送入模型训练,这也有一个缺点,就是会丢失上下文信息。现在想使用python对图片批量裁剪,那么设

    2024年02月12日
    浏览(51)
  • Python matplotlib 画图 字体、字体大小、字体粗细、文字方向、斜体、旋转角度 全集

    Python matplotlib 画图 字体、字体大小、字体粗细、文字方向、斜体 统一设置 单独设置 设置字体 font 设置坐标轴 axes 字体大小 labelsize 设置标签 tick 字体大小 labelsize 设置坐标轴 axes 字体粗细 labelweight 设置标签 tick 字体粗细 labelweight 可选粗细有 [\\\'light\\\',\\\'normal\\\',\\\'medium\\\',\\\'semibold\\\',\\\'b

    2024年02月12日
    浏览(51)
  • C# PaddleInference 图片旋转角度检测

    目录 效果 项目 代码 下载    VS2022+.net4.8+ OpenCvSharp4+Sdcb.PaddleInference using OpenCvSharp; using Sdcb.PaddleInference; using Sdcb.PaddleInference.Native; using System; using System.Drawing; using System.Globalization; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Windows.Forms; namespace PaddleInfe

    2024年02月13日
    浏览(41)
  • C# RotationDetector 图片旋转角度检测

    目录 效果 项目 代码 下载  VS2022+.net4.8+ OpenCvSharp4+Sdcb.RotationDetector using OpenCvSharp; using Sdcb.RotationDetector; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace RotationDetector_图片旋转角

    2024年02月12日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包