首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[教程]解锁图像读取技巧:Python教你轻松批量导入图像!

发布于 2025-06-23 21:30:30
0
1197

引言在图像处理、计算机视觉和机器学习领域,图像的批量导入是一个基础且常用的操作。Python 提供了多种库和方式来实现这一功能,其中最常用的包括 PIL(Pillow)、OpenCV 和 imagei...

引言

在图像处理、计算机视觉和机器学习领域,图像的批量导入是一个基础且常用的操作。Python 提供了多种库和方式来实现这一功能,其中最常用的包括 PIL(Pillow)、OpenCV 和 imageio。本文将详细介绍这些方法,并给出相应的代码示例。

准备工作

在开始之前,请确保已安装以下库:

  • PIL (Pillow)
  • OpenCV
  • imageio

可以使用以下命令进行安装:

pip install pillow opencv-python imageio

PIL (Pillow)

Pillow 是一个对 Python Imaging Library (PIL) 的扩展,提供了对图像的读取、编辑和保存等功能。

读取图像

以下是一个使用 Pillow 读取单个图像的示例:

from PIL import Image
# 读取图像
img = Image.open('path/to/image.jpg')
# 显示图像
img.show()
# 保存图像
img.save('path/to/save/image.jpg')

批量读取图像

以下是一个使用 Pillow 批量读取文件夹中所有图像的示例:

import os
from PIL import Image
# 指定文件夹路径
folder_path = 'path/to/folder'
# 获取文件夹中所有图像文件
images = [f for f in os.listdir(folder_path) if f.endswith(('.png', '.jpg', '.jpeg'))]
# 批量读取图像
for image_name in images: img = Image.open(os.path.join(folder_path, image_name)) img.show() img.save(os.path.join(folder_path, 'processed', image_name))

OpenCV

OpenCV 是一个开源的计算机视觉库,提供了丰富的图像处理功能。

读取图像

以下是一个使用 OpenCV 读取单个图像的示例:

import cv2
# 读取图像
image = cv2.imread('path/to/image.jpg')
# 显示图像
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 保存图像
cv2.imwrite('path/to/save/image.jpg', image)

批量读取图像

以下是一个使用 OpenCV 批量读取文件夹中所有图像的示例:

import os
import cv2
# 指定文件夹路径
folder_path = 'path/to/folder'
# 获取文件夹中所有图像文件
images = [f for f in os.listdir(folder_path) if f.endswith(('.png', '.jpg', '.jpeg'))]
# 批量读取图像
for image_name in images: image = cv2.imread(os.path.join(folder_path, image_name)) cv2.imshow('Image', image) cv2.waitKey(0) cv2.destroyAllWindows()

imageio

imageio 是一个用于读取和写入多种图像数据的库。

读取图像

以下是一个使用 imageio 读取单个图像的示例:

import imageio
# 读取图像
image = imageio.imread('path/to/image.jpg')
# 显示图像
imageio.imshow(image)
# 保存图像
imageio.imsave('path/to/save/image.jpg', image)

批量读取图像

以下是一个使用 imageio 批量读取文件夹中所有图像的示例:

import os
import imageio
# 指定文件夹路径
folder_path = 'path/to/folder'
# 获取文件夹中所有图像文件
images = [f for f in os.listdir(folder_path) if f.endswith(('.png', '.jpg', '.jpeg'))]
# 批量读取图像
for image_name in images: image = imageio.imread(os.path.join(folder_path, image_name)) imageio.imshow(image)

总结

本文介绍了使用 Python 读取图像的几种方法,包括 PIL、OpenCV 和 imageio。这些方法各有优缺点,可以根据实际需求选择合适的方法。在实际应用中,您可能需要根据图像格式、处理需求和性能要求等因素来选择最合适的方法。

评论
一个月内的热帖推荐
csdn大佬
Lv.1普通用户

452398

帖子

22

小组

841

积分

赞助商广告
站长交流