将多张图片转为numpy数组
时间: 2023-05-20 21:01:51 浏览: 142
可以使用Python中的Pillow库来将多张图片转为numpy数组。以下是示例代码:
```python
from PIL import Image
import numpy as np
# 读取图片并转为numpy数组
def img_to_array(img_path):
img = Image.open(img_path)
img_array = np.array(img)
return img_array
# 将多张图片转为numpy数组
def imgs_to_array(img_paths):
img_arrays = []
for img_path in img_paths:
img_array = img_to_array(img_path)
img_arrays.append(img_array)
return np.array(img_arrays)
# 示例
img_paths = ['img1.jpg', 'img2.jpg', 'img3.jpg']
img_arrays = imgs_to_array(img_paths)
print(img_arrays.shape) # 输出(3, height, width, channels)
```
这段代码可以将多张图片转为一个四维的numpy数组,第一维表示图片的数量,第二维表示图片的高度,第三维表示图片的宽度,第四维表示图片的通道数。
相关问题
将文件夹中的多张图片转为numpy数组
你可以使用Python中的Pillow库来将图片转换为numpy数组。以下是一个示例代码:
```python
from PIL import Image
import numpy as np
import os
# 定义一个函数,将图片转换为numpy数组
def image_to_array(image_path):
with Image.open(image_path) as img:
img_array = np.array(img)
return img_array
# 定义一个函数,将文件夹中的所有图片转换为numpy数组
def folder_to_array(folder_path):
img_list = os.listdir(folder_path)
img_arrays = []
for img_name in img_list:
img_path = os.path.join(folder_path, img_name)
img_array = image_to_array(img_path)
img_arrays.append(img_array)
return img_arrays
# 调用函数,将文件夹中的所有图片转换为numpy数组
folder_path = 'path/to/folder'
img_arrays = folder_to_array(folder_path)
```
你需要将`path/to/folder`替换为你实际的文件夹路径。这个代码将会读取文件夹中的所有图片,并将它们转换为numpy数组,存储在`img_arrays`列表中。
如何将列表转为numpy数组
要将列表转换为 NumPy 数组,您可以使用 NumPy 库中的 array() 函数。以下是一个简单的示例代码:
```python
import numpy as np
my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
print(my_array)
```
这将输出以下内容:
```
[1 2 3 4 5]
```
在这个示例中,我们首先导入了 NumPy 库,然后定义了一个名为 my_list 的列表。接下来,使用 array() 函数将该列表转换为一个 NumPy 数组,并将其存储在 my_array 变量中。最后,我们输出了该数组。
需要注意的是,如果您的列表中的元素类型不同,则 NumPy 数组的元素类型将被自动转换为最适合的类型。例如,如果列表包含整数和浮点数,则 NumPy 数组的元素类型将为浮点数。
阅读全文