使用python将图片按标签分入不同文件夹的方法

下面是使用Python将图片按标签分入不同文件夹的方法的完整攻略。

步骤一:安装依赖包

在Python项目中,通常需要用到两个常用的第三方库:Pillowos,如果你已经安装了Python,可以通过以下命令安装这两个库:

pip install Pillow
pip install os

步骤二:准备数据

使用python进行图片分类,需要准备一个包含所有需要分类的图片的文件夹。在该文件夹中,每个图片都需要有一个对应的标签,标签通常作为图片的命名规则来实现。

例如我们有一个文件夹images,其中包含了几张图片:

  • cat001.jpg
  • dog001.jpg
  • cat002.jpg
  • dog002.jpg

对于这些图片,我们可以将它们按照分类标签划分到两个子文件夹catsdogs中,不妨把catdog作为每张图片的分类标签。

步骤三:编写代码

下面是一个基本的Python脚本,它可以按照图片的分类标签将图片分别复制到catsdogs文件夹中:

import os
from PIL import Image

# 打开源文件夹
src_folder = 'images'
filelist = os.listdir(src_folder)

# 循环遍历源文件夹中的图片
for filename in filelist:
    # 跳过非图片文件
    if not filename.endswith('.jpg') and not filename.endswith('.png'):
        continue

    # 获取图片分类标签
    label = filename.split('.')[0]

    # 打开图片文件
    img = Image.open(os.path.join(src_folder, filename))

    # 新建子文件夹
    dst_folder = f'{label}s'
    if not os.path.exists(dst_folder):
        os.makedirs(dst_folder)

    # 复制文件到目标文件夹
    dst_path = os.path.join(dst_folder, filename)
    img.save(dst_path)

上面的代码通过os模块遍历源文件夹中的所有图片,再通过Pillow库打开每张图片,并根据文件名获取图片的分类标签。然后创建一个以分类标签命名的文件夹,并将该分类下的图片复制到目标文件夹中。

示例一:按照图片颜色分类

考虑到实际中,分类依据可能不仅是图片所描述的事物种类,还可以是图片的特征,比如颜色。

在Python中,可以使用Pillow库中的ImageColor类来实现颜色识别,下面是一个示例代码,根据图片的颜色将图片分类,将颜色名称作为分类标签:

import os
from PIL import Image, ImageColor

# 打开源文件夹
src_folder = 'images'
filelist = os.listdir(src_folder)

# 循环遍历源文件夹中的图片
for filename in filelist:
    # 跳过非图片文件
    if not filename.endswith('.jpg') and not filename.endswith('.png'):
        continue

    # 获取图片颜色分类标签
    img = Image.open(os.path.join(src_folder, filename))
    dominant_color = ImageColor.getcolor(img.getcolors()[0][1], 'RGB')  # 取图片中出现次数最多的颜色
    label = ImageColor.colormap.get(dominant_color)

    # 新建子文件夹
    dst_folder = f'{label}s'
    if not os.path.exists(dst_folder):
        os.makedirs(dst_folder)

    # 复制文件到目标文件夹
    dst_path = os.path.join(dst_folder, filename)
    img.save(dst_path)

示例二:按照文件名后缀分类

还有一种实用的分类方法是基于文件名后缀。例如将.jpg.png的图片分别归入两个不同的文件夹中,可以按照如下方式编写代码:

import os
from PIL import Image

# 打开源文件夹
src_folder = 'images'
filelist = os.listdir(src_folder)

# 循环遍历源文件夹中的图片
for filename in filelist:
    # 跳过非图片文件
    if not filename.endswith('.jpg') and not filename.endswith('.png'):
        continue

    # 获取图片后缀分类标签
    label = filename.split('.')[-1]

    # 新建子文件夹
    dst_folder = f'{label}s'
    if not os.path.exists(dst_folder):
        os.makedirs(dst_folder)

    # 复制文件到目标文件夹
    dst_path = os.path.join(dst_folder, filename)
    img = Image.open(os.path.join(src_folder, filename))
    img.save(dst_path)

上述代码中,首先判断文件名的后缀是否是.jpg.png,并用后缀名作为图片的分类标签。然后创建一个以后缀名命名的文件夹,并将该分类下的图片复制到目标文件夹中。

这里给出了两个简单的示例,其他更多的分类方式可以根据实际需求编写代码。希望能对你有所启发。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用python将图片按标签分入不同文件夹的方法 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • 对Python新手编程过程中如何规避一些常见问题的建议

    当Python新手开始编写代码时,常常会遇到一些困难和问题。以下是几条建议和技巧,可以帮助新手规避一些常见的问题,顺利完成编程过程。 熟悉Python的基础语法和常用函数 在开始编写代码之前,新手需要熟悉Python的基础语法和常用函数。例如,了解Python的变量、条件语句、循环语句等基本语法,以及一些常用的内置函数(如print、type、len等),可…

    python 2023年5月13日
    00
  • Python运算符教程之逻辑门详解

    Python运算符教程之逻辑门详解 1. 逻辑门简介 逻辑门同电子学中的电子门,用于实现逻辑运算。 1.1 逻辑运算类型 常用的逻辑运算有三种: 与(and) 或(or) 非(not) 1.2 逻辑真值表 逻辑真值表是一种列出可能结果的表格,通常用于分析各种逻辑操作的效果。 以下是逻辑真值表的模板: 输入1 输入2 输出 False False False …

    python 2023年6月5日
    00
  • Python标准库之collections包的使用教程

    当然,我很乐意为您提供“Python标准库之collections包的使用教程”的完整攻略。以下是详细步骤和示例。 collections包的概述 Python标准库中的collections包提供了一有用的数据结构,这些结构可以用于解决许多常见的编程问题。collections包中包含了一些常用的数据构,如字典、列表、集合等,以及一些特殊的数据结构,如命名…

    python 2023年5月13日
    00
  • Python实现简单图像缩放与旋转

    Python实现简单图像缩放与旋转 缩放 方法1:PIL库 安装PIL库 pip install Pillow 缩放图片 from PIL import Image # 打开图片 img = Image.open(‘example.jpg’) # 缩放图片 resized_img = img.resize((200, 200)) # 保存图片 resized…

    python 2023年5月19日
    00
  • 详解Python函数中的几种参数

    我会用 markdown 格式撰写完整攻略,内容如下: 详解 Python 函数中的几种参数 在 Python 函数中,参数是用于传递值给函数的占位符。在这篇文章中,我们将详细阐述 Python 函数中的几种参数,并举例说明。 位置参数 位置参数是指那些按照其顺序被输入到函数中的参数。也就是说,位置参数的位置是很重要的。比如,下面这个例子中的函数 add 接…

    python 2023年5月13日
    00
  • python实现高斯投影正反算方式

    Python实现高斯投影正反算需要包含以下步骤: 步骤 1:导入所需库 在Python代码中,要使用到以下几个库: import math 其中math库用来进行角度和弧度之间的转换。 步骤 2:定义参数 高斯投影中需要定义以下一些参数: 长轴半径$a$ 短轴半径$b$ 极点纬度$\beta_0$ 中央经线的经度$\lambda_0$ 大地基准面与赤道之间的…

    python 2023年6月3日
    00
  • Python实现原神抽卡的方法

    下面是详细讲解“Python实现原神抽卡的方法”的完整攻略。 1.引言 玩家们都喜欢抽卡,但是在游戏开始之前玩家很难知道自己会拥有什么角色或武器,因此玩家总是不能够满足现状。这个过程中,我们可以通过学习Python实现原神抽卡的方法,让我们在游戏中更自由的玩耍。 2.实现过程 2.1.创建卡池 首先,我们需要创建原神抽卡的模拟数据。我们将创建包含武器和角色两…

    python 2023年6月13日
    00
  • python常用的时间模块之datetime模块示例详解

    Python常用的时间模块之datetime模块示例详解 时间是程序设计中非常重要的部分,在Python中,我们使用datetime模块来处理日期和时间。这个模块提供了多个类来处理不同类型的日期和时间数据。本文将详细介绍datetime模块的使用方法和示例。 datetime模块的基本使用 datetime模块提供了3个重要的类:datetime、date和…

    python 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部