使用 python 从目录加载图像并重塑
Using python load images from directory and reshape
我想从目录中加载相同的图像并使用 python 的重塑函数重塑它们。
我该怎么做?
- 使用
os.walk()
遍历图片目录。
- 使用Pillow
加载图像
- 使用Image.getdata获取值列表
- 将该列表传递给 numpy.reshape
我跳过了很多。您可能必须使用与 Pillow 中的 getdata 不同的方法,但您没有提供很多上下文。
假设您已经安装了 scipy 并假设 "reshape" 您实际上是指 "resize",下面的代码应该加载目录 /foo/bar
中的所有图像,调整大小它们为 64x64 并将它们添加到列表 images
:
import os
from scipy import ndimage, misc
images = []
for root, dirnames, filenames in os.walk("/foo/bar"):
for filename in filenames:
if re.search("\.(jpg|jpeg|png|bmp|tiff)$", filename):
filepath = os.path.join(root, filename)
image = ndimage.imread(filepath, mode="RGB")
image_resized = misc.imresize(image, (64, 64))
images.append(image_resized)
如果您需要一个 numpy 数组(调用 reshape
),那么只需在末尾添加 images = np.array(images)
(在开头添加 import numpy as np
)。
我想从目录中加载相同的图像并使用 python 的重塑函数重塑它们。
我该怎么做?
- 使用
os.walk()
遍历图片目录。 - 使用Pillow 加载图像
- 使用Image.getdata获取值列表
- 将该列表传递给 numpy.reshape
我跳过了很多。您可能必须使用与 Pillow 中的 getdata 不同的方法,但您没有提供很多上下文。
假设您已经安装了 scipy 并假设 "reshape" 您实际上是指 "resize",下面的代码应该加载目录 /foo/bar
中的所有图像,调整大小它们为 64x64 并将它们添加到列表 images
:
import os
from scipy import ndimage, misc
images = []
for root, dirnames, filenames in os.walk("/foo/bar"):
for filename in filenames:
if re.search("\.(jpg|jpeg|png|bmp|tiff)$", filename):
filepath = os.path.join(root, filename)
image = ndimage.imread(filepath, mode="RGB")
image_resized = misc.imresize(image, (64, 64))
images.append(image_resized)
如果您需要一个 numpy 数组(调用 reshape
),那么只需在末尾添加 images = np.array(images)
(在开头添加 import numpy as np
)。