将文件夹下的png图像集转化为tensor
时间: 2023-11-16 20:06:19 浏览: 103
可以使用 PyTorch 中的 `torchvision` 模块来完成这个任务。以下是一个示例代码,可以将指定目录下的所有 PNG 图像转换为 PyTorch 的 Tensor 格式并存储在一个列表中:
```python
import os
from PIL import Image
import torch
from torchvision import transforms
# 定义图像预处理方法
transform = transforms.Compose([
transforms.Resize((224, 224)), # 调整图像大小为 224x224
transforms.ToTensor() # 将图像转换为 Tensor 格式
])
# 加载文件夹下的所有 PNG 图像
data_dir = 'path/to/folder'
image_list = [os.path.join(data_dir, f) for f in os.listdir(data_dir) if f.endswith('.png')]
# 将所有图像转换为 Tensor
tensor_list = []
for image_path in image_list:
image = Image.open(image_path)
tensor = transform(image)
tensor_list.append(tensor)
# 将 Tensor 列表转换为一个大 Tensor
tensor_data = torch.stack(tensor_list)
```
这里首先定义了一个图像预处理方法 `transform`,它包括两个步骤:将图像大小调整为 224x224,并将图像转换为 Tensor 格式。然后通过 `os.listdir` 函数获取指定目录下的所有文件名,并通过列表推导式筛选出所有 PNG 图像的文件名。接下来,我们循环遍历所有图像文件,使用 `PIL` 库中的 `Image` 类加载图像,使用预处理方法将图像转换为 Tensor,并将 Tensor 存储在一个列表中。最后,使用 `torch.stack` 函数将 Tensor 列表转换为一个大的 Tensor。
阅读全文