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

准备工作
首先需要确保已经安装必要的依赖库,如果还没有安装可以通过以下命令完成安装:
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