导读:本期聚焦于小伙伴创作的《如何在Python中正确加载并显示Kaggle图像数据集中的图片》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何在Python中正确加载并显示Kaggle图像数据集中的图片》有用,将其分享出去将是对创作者最好的鼓励。

在Kaggle的图像类竞赛中,拿到数据集后第一步往往是加载并查看样本图片,确认数据格式和内容是否符合预期。Python提供了多种成熟的库可以完成这个操作,下面会介绍两种最常用的实现方式。

如何在Python中正确加载并显示Kaggle图像数据集中的图片

准备工作

首先需要确保已经安装必要的依赖库,如果还没有安装可以通过以下命令完成安装:

pip install pillow opencv-python matplotlib

Kaggle的数据集下载到本地后,通常会有一个根目录,下面包含不同类别的子文件夹,或者统一的图片文件夹和标签文件。假设我们的数据集路径为./kaggle_dataset,其中图片存放在./kaggle_dataset/images目录下,我们首先要获取所有图片的路径列表。

方法一:使用PIL和matplotlib加载显示

PIL(Python Imaging Library)是Python中处理图像的基础库,配合matplotlib可以很方便地在Jupyter Notebook或者脚本中显示图片。

第一步:获取图片路径

我们可以使用os模块遍历图片目录,收集所有图片的完整路径:

import os

# 数据集图片所在目录
img_dir = "./kaggle_dataset/images"
# 支持的图片后缀
valid_suffix = [".jpg", ".jpeg", ".png", ".bmp"]

img_path_list = []
# 遍历目录下的所有文件
for file_name in os.listdir(img_dir):
    # 获取文件后缀
    file_suffix = os.path.splitext(file_name)[1].lower()
    if file_suffix in valid_suffix:
        # 拼接完整路径并加入列表
        full_path = os.path.join(img_dir, file_name)
        img_path_list.append(full_path)

# 打印前5张图片的路径,确认路径是否正确
print("前5张图片路径:")
for path in img_path_list[:5]:
    print(path)

第二步:加载并显示单张图片

使用PIL的Image.open方法加载图片,再用matplotlib的imshow方法显示:

from PIL import Image
import matplotlib.pyplot as plt

# 选择第一张图片进行加载
target_img_path = img_path_list[0]

# 使用PIL加载图片
img = Image.open(target_img_path)
# 打印图片的基本信息
print("图片尺寸:", img.size)
print("图片格式:", img.format)
print("图片模式:", img.mode)

# 使用matplotlib显示图片
plt.figure(figsize=(6, 6))
plt.imshow(img)
# 关闭坐标轴显示
plt.axis("off")
plt.show()

方法二:使用OpenCV加载显示

OpenCV是计算机视觉领域常用的库,加载图片的速度较快,也支持多种图像处理操作,适合需要处理大量图片的场景。

加载并显示单张图片

需要注意OpenCV加载的图片通道顺序是BGR,而matplotlib显示需要RGB顺序,所以需要先转换通道:

import cv2
import matplotlib.pyplot as plt

# 选择第一张图片进行加载
target_img_path = img_path_list[0]

# 使用OpenCV加载图片,第二个参数为1表示加载彩色图
img_bgr = cv2.imread(target_img_path, 1)
# 将BGR通道转换为RGB通道
img_rgb = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB)

# 打印图片的基本信息
print("图片形状:", img_rgb.shape)

# 显示图片
plt.figure(figsize=(6, 6))
plt.imshow(img_rgb)
plt.axis("off")
plt.show()

批量显示多张图片

如果需要同时查看多张样本图片,可以用matplotlib的子图功能实现批量显示:

import matplotlib.pyplot as plt
from PIL import Image

# 设置子图的行数和列数,这里显示2行3列共6张图片
rows = 2
cols = 3
plt.figure(figsize=(12, 8))

for i in range(rows * cols):
    # 如果图片数量不足,跳出循环
    if i >= len(img_path_list):
        break
    # 创建子图
    ax = plt.subplot(rows, cols, i + 1)
    # 加载图片
    img = Image.open(img_path_list[i])
    # 显示图片
    ax.imshow(img)
    # 设置子图标题为图片文件名
    ax.set_title(os.path.basename(img_path_list[i]))
    # 关闭子图坐标轴
    ax.axis("off")

# 调整子图间距
plt.tight_layout()
plt.show()

常见问题说明

  • 路径错误:如果加载图片时提示文件不存在,先检查路径是否正确,Kaggle数据集下载后如果是压缩包,需要先解压再使用路径。
  • 图片损坏:部分数据集可能存在损坏的图片,加载时会报错,可以在加载前添加异常捕获逻辑,跳过损坏的图片。
  • 显示颜色异常:使用OpenCV加载的图片如果直接用matplotlib显示颜色偏蓝,就是因为没有转换BGR到RGB通道,按照上述方法转换即可。

总结

加载并显示Kaggle图像数据集的图片整体流程分为三步:确定数据集路径、遍历获取图片路径、使用对应库加载并显示。PIL库更适合简单的图片查看场景,OpenCV库更适合后续需要做图像预处理的场景,读者可以根据自己的需求选择合适的方法。如果是在Kaggle的在线Notebook环境中运行,数据集路径可以直接使用Kaggle提供的默认路径,不需要额外修改本地路径的逻辑。

Python图像加载数据集处理matplotlibPIL修改时间:2026-06-25 03:03:33

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。