文件夹下面有多个文件夹,里面有若干图像。读取图像,将维度调整为[图像数量,3,224,224],得到图像标签
时间: 2024-05-15 17:15:26 浏览: 85
可以采用Python中的Pillow库来读取图像,并使用numpy库来进行维度调整。
首先,需要先安装Pillow库:
```
pip install Pillow
```
然后,可以使用以下代码读取文件夹中的所有图像,并将它们调整为指定的维度:
```python
import os
from PIL import Image
import numpy as np
# 定义图像的尺寸和通道数
IMAGE_SIZE = 224
CHANNELS = 3
# 定义文件夹路径和标签列表
folder_path = "/path/to/folder"
label_list = []
# 定义空的图像矩阵
image_data = np.empty((0, CHANNELS, IMAGE_SIZE, IMAGE_SIZE), dtype=np.float32)
# 遍历文件夹中的所有文件夹和图像
for folder_name in os.listdir(folder_path):
folder_path = os.path.join(folder_path, folder_name)
if not os.path.isdir(folder_path):
continue
label = len(label_list)
label_list.append(folder_name)
for file_name in os.listdir(folder_path):
file_path = os.path.join(folder_path, file_name)
if not os.path.isfile(file_path):
continue
# 使用Pillow库读取图像,并将其转换为numpy数组
image = Image.open(file_path).convert("RGB")
image = image.resize((IMAGE_SIZE, IMAGE_SIZE))
image_array = np.array(image, dtype=np.float32)
image_array = np.transpose(image_array, (2, 0, 1))
image_array = np.expand_dims(image_array, axis=0)
# 将当前图像添加到图像矩阵中
image_data = np.concatenate((image_data, image_array), axis=0)
# 输出图像矩阵的形状和标签列表
print("image_data shape:", image_data.shape)
print("label_list:", label_list)
```
这段代码会遍历文件夹下的所有文件夹和图像,将图像读取并调整为指定的尺寸和通道数,然后将它们添加到图像矩阵中。最后,输出图像矩阵的形状和标签列表。
阅读全文