使用 Python 批量读取文件夹中的图片

在机器学习和计算机视觉领域,常常需要读取大量的图片进行训练和测试。如果你是刚入行的小白,别担心!本文将教你如何使用 Python 批量读取文件夹中的图片。我们将使用 opencv 库中的 imread 函数。下面是整个过程的步骤。

流程步骤

步骤编号 步骤内容
1 安装必要的库
2 导入相关库
3 获取文件夹中所有图片的路径
4 批量读取图片并存储
5 处理读取到的图片

第一步:安装必要的库

在你开始之前,你需要确保你的 Python 环境中已经安装了 opencv-python。你可以使用以下命令通过 pip 进行安装:

pip install opencv-python

第二步:导入相关库

接下来,导入我们需要的库,这里主要是 cv2(OpenCV)用于读取图片,以及 os 用于文件处理。

import cv2  # 用于读取图片
import os    # 用于操作文件和目录

第三步:获取文件夹中所有图片的路径

使用 os 库,我们可以获取指定文件夹中所有图片的文件名,并汇总成一个列表。

# 定义一个函数,用于获取文件夹中所有图片的路径
def get_image_paths(folder_path):
    # 列出该文件夹中的所有文件
    file_names = os.listdir(folder_path)
    # 生成图片的完整路径
    image_paths = [os.path.join(folder_path, file) for file in file_names if file.endswith(('.png', '.jpg', '.jpeg'))]
    return image_paths

第四步:批量读取图片并存储

创建一个函数来遍历这些图片,并使用 cv2.imread 读取每一张图片。

def read_images(image_paths):
    images = []  # 用于存储读取到的图片
    for path in image_paths:
        img = cv2.imread(path)  # 读取图片
        if img is not None:  # 检查是否读取成功
            images.append(img)
    return images

第五步:处理读取到的图片

打印出读取的图片数量,作为读取成功的验证。

if __name__ == "__main__":
    folder_path = '你的图片文件夹路径'  # 请替换成你的文件夹路径
    image_paths = get_image_paths(folder_path)  # 获取图片路径
    images = read_images(image_paths)  # 批量读取
    print(f"成功读取到 {len(images)} 张图片.")

类图

下面是我们代码中涉及的主要类和方法的类图:

classDiagram
    class ImageProcessor {
        +get_image_paths(folder_path)
        +read_images(image_paths)
    }

状态图

状态图展示了批量读取图片的状态转移过程:

stateDiagram
    [*] --> GettingImagePaths
    GettingImagePaths --> ReadingImages
    ReadingImages --> Successful
    ReadingImages --> Error
    Successful --> [*]
    Error --> [*]

结尾

通过以上步骤,你已经学会了如何使用 Python 批量读取一个文件夹中的图片。这不仅有助于你在后续的项目中处理数据,还能提高你在图像处理上的实践能力。希望你能在实际应用中灵活运用这些知识,祝你在开发的道路上越走越远!如果有任何疑问,欢迎随时提问。