PIL Image 转numpy.ndarray
时间: 2025-03-13 16:02:37 浏览: 33
### 如何将PIL Image对象转换为numpy ndarray
可以利用 `numpy` 库中的 `np.array()` 方法轻松实现从 PIL 图像对象到 NumPy 数组的转换。具体来说,通过调用该方法并将 PIL 图像作为参数传入即可完成转换[^3]。
以下是具体的代码示例:
```python
import numpy as np
from PIL import Image
# 打开一张图片并加载其数据
image = Image.open('example.jpg')
# 将PIL图像对象转换为NumPy数组
image_np = np.array(image)
print(type(image_np)) # 输出:<class 'numpy.ndarray'>
```
上述代码中,`Image.open('example.jpg')` 加载了一张名为 `example.jpg` 的图像文件,并将其存储为 PIL 图像对象。随后,通过 `np.array(image)` 完成了从 PIL 图像对象到 NumPy 数组的转换[^2]。
需要注意的是,在某些情况下,原始图像可能不是 RGB 或 RGBA 格式(例如灰度图)。此时,可以通过 `.convert("RGB")` 明确指定目标颜色模式后再进行转换:
```python
image_rgb = image.convert("RGB")
image_np = np.array(image_rgb)
```
这样能够确保最终得到的 NumPy 数组具有预期的颜色通道结构[^1]。
#### 数据验证与属性获取
一旦成功完成了转换,还可以进一步提取有关新创建的 NumPy 数组的信息,比如它的尺寸或者像素值范围等特性。下面展示了一个简单例子来演示这些功能的应用场景之一——计算整个图像所有像素点亮度均值的方法如下所示:
```python
mean_pixel_value = np.mean(image_np)
print(f"Mean Pixel Value: {mean_pixel_value}")
```
以上就是关于如何把一个标准库支持下的 Python Imaging Library (即"Pillow", forked version of PIL) 中定义好的图像实例转变为可供科学计算使用的多维数值型列表表示形式的过程介绍以及实际操作指南。
阅读全文
相关推荐




















