Python 读取图片主要有 4 种方式:Pillow(通用)、OpenCV(CV 任务)、matplotlib(可视化)、torchvision(深度学习)。
Pillow(推荐)
1
2
3
4
5
6
| from PIL import Image
import numpy as np
img = Image.open("image.jpg") # PIL.Image 对象
img = img.resize((640, 640)) # 调整尺寸
arr = np.array(img) # 转 numpy(RGB,HWC)
|
- 通用性强,支持多种格式
- 返回
PIL.Image,与 numpy/PyTorch 兼容
OpenCV(CV 任务)
1
2
3
4
5
6
| import cv2
img = cv2.imread("image.jpg") # BGR,numpy 数组
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img_resized = cv2.resize(img, (640, 640))
cv2.imwrite("out.jpg", img) # 保存(需 BGR)
|
- 返回 numpy 数组(uint8,0-255)
- 默认 BGR 通道,需转换
matplotlib(可视化)
1
2
3
4
5
6
| import matplotlib.pyplot as plt
img = plt.imread("image.jpg") # RGB,numpy 数组
plt.imshow(img)
plt.axis("off")
plt.show()
|
torchvision(深度学习)
1
2
3
4
5
6
| from torchvision.io import read_image
from torchvision.transforms import Resize
img = read_image("image.jpg") # CHW,torch.uint8
img = Resize((640, 640))(img) # 调整尺寸
img = img.float() / 255.0 # 归一化
|
- 直接返回 Tensor(CHW)
- 适合 PyTorch 模型输入
格式对比
| 库 | 通道顺序 | 形状 | 返回类型 |
|---|
| Pillow | RGB | HWC | PIL.Image |
| OpenCV | BGR | HWC | numpy |
| matplotlib | RGB | HWC | numpy |
| torchvision | RGB | CHW | Tensor |
Comments