使用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日

相关文章

  • jupyter notebook 使用过程中python莫名崩溃的原因及解决方式

    Jupyter Notebook 使用过程中 Python 莫名崩溃的原因及解决方式 原因 Jupyter Notebook 并不是一个完整的开发环境,而是一个交互式的笔记本。当 Notebook 运行 Python 代码时,它会在后台启动一个 Python 进程,并将其连接到 Notebook 内核。如果 Python 进程出现问题,Notebook 就会…

    python 2023年5月13日
    00
  • 如何在Python中使用psycopg2库连接PostgreSQL数据库?

    在Python中,我们可以使用psycopg2库连接PostgreSQL数据库。psycopg2是一个Python PostgreSQL适配器,它允许我们在Python中连接、操作和管理PostgreSQL数据库。以下是如何在Python中使用psycopg2库连接PostgreSQL数据库的完整使用攻略,包括连接数据库、创建表、插入数据、查询数据、更新数据…

    python 2023年5月12日
    00
  • Python字符串拼接的几种方法整理

    Python字符串拼接的几种方法整理 Python是一门简单易学的编程语言,它的字符串拼接功能也非常强大。在这篇文章中,我们将介绍Python中几种字符串拼接的方法。 直接使用加号连接字符串 最常见的字符串拼接方法是直接使用加号进行连接。例如: str1 = ‘hello’ str2 = ‘ world’ result = str1 + str2 print…

    python 2023年6月5日
    00
  • python获取当前日期和时间的方法

    获取当前日期和时间在 Python 中是非常简单的,可以使用 datetime 模块来完成。下面是获取当前日期和时间的方法攻略: 导入 datetime 模块 在 Python 中,获取当前日期和时间需要使用 datetime 模块,所以首先需要导入 datetime 模块。在 Python 中,导入模块使用 import 关键字,下面是导入 datetim…

    python 2023年6月2日
    00
  • Python的一些用法分享

    Python是一种高级编程语言,具有简单易学、功能强大、可扩展性强等特点。在Python中,有许多有用的用法和技巧,本文将分享一些常用的Python用法,包括列表推导式、lambda函数、装饰器等,并提供示例说明。 列表推导式 列表推导式是一种简洁的语法,用于从一个列表中生成另一个列表。它的语法如下: new_list = [expression for i…

    python 2023年5月13日
    00
  • 详解Python中字典的增删改查

    详解Python中字典的增删改查 Python中的字典(dictionary)是一种无序的、可变的数据类型,它是由键(key)和值(value)组成的。在Python中,字典使用大括号{}来表示,键和值之间使用冒号:来分隔,不同的键和值之间使用逗号,分隔。 字典的创建和初始化 在Python中,字典可以通过以下方式进行创建和初始化: # 创建一个空字典 d …

    python 2023年5月13日
    00
  • Python实现自定义异常堆栈信息的示例代码

    以下是关于Python实现自定义异常堆栈信息的示例代码的完整攻略: 问题描述 在Python中,异常堆栈信息可以帮助我们更好地理程序运行时错误。有时候,我们需要自定义异常堆栈信息,以便更好地调试程序。 解决方法 可以以下步骤在Python中实现自定义异常堆栈信息: 创建自定义异常类。 在Python中,可以创建自定义异常类。自定义异常可以继承Exceptio…

    python 2023年5月13日
    00
  • Python selenium抓取虎牙短视频代码实例

    这里我来详细讲解“Python selenium抓取虎牙短视频代码实例”的完整攻略。 介绍 虎牙短视频是一款短视频应用,它的内容丰富多样,包括游戏直播、娱乐、美食等等,每天都会有大量用户上传和观看。本文将介绍如何使用Python的selenium库来实现抓取虎牙短视频的功能。 安装selenium库 首先,我们需要安装Python的selenium库。可以使…

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