'ndarray' 显示图像
时间: 2025-01-14 14:21:31 浏览: 41
### 使用 NumPy 和 Matplotlib 显示图像
为了显示图像,可以利用 `numpy` 来处理图像数据,并借助 `matplotlib.pyplot.imshow()` 函数来展示这些数据。下面是一个完整的例子,展示了如何读取、转换以及最终显示一幅彩色图像。
```python
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
# 加载图片文件并将其转化为NumPy数组形式
image_path = 'example.jpg' # 图片路径
img_pil = Image.open(image_path).convert('RGB')
img_array = np.array(img_pil)
# 展示原始图像的信息
print(f"Image shape (height, width, channels): {img_array.shape}")
plt.title("Original Image")
plt.axis('off') # 关闭坐标轴刻度
plt.imshow(img_array)
plt.show()
```
这段代码首先通过 Pillow 库中的 `Image.open()` 方法打开指定路径下的 JPEG 文件,并调用 `.convert('RGB')` 确保图像是三通道颜色模式;接着使用 `np.array()` 把它变成一个多维数组 `img_array`[^2]。最后,运用 `matplotlib.pyplot.imshow()` 可视化这个多维数组表示的图像。
对于灰度图像,则不需要进行 RGB 转换:
```python
# 如果是灰度图像则无需转成RGB格式
gray_img_pil = Image.open('grayscale_example.png').convert('L')
gray_img_array = np.array(gray_img_pil)
plt.figure(figsize=(8, 6))
plt.title("Grayscale Image")
plt.axis('off')
plt.imshow(gray_img_array, cmap='gray', vmin=0, vmax=255)
plt.show()
```
这里的关键在于选择了合适的色彩映射 (`cmap`) 参数——对于黑白照片来说就是 `'gray'` ——并且设置了合理的亮度范围(`vmin`, `vmax`)使得视觉效果更佳。
阅读全文
相关推荐


















