numpy.ndarray转图片并保存
时间: 2023-12-25 18:05:52 浏览: 52
可以使用PIL库将numpy.ndarray转换为图片并保存。以下是示例代码:
```python
import numpy as np
from PIL import Image
# 创建一个随机的 128x128 的 numpy 数组
arr = np.random.randint(0, 255, size=(128, 128, 3), dtype=np.uint8)
# 创建 Image 对象
img = Image.fromarray(arr)
# 保存图片
img.save('example.png')
```
其中,`arr` 是一个 128x128 的 numpy 数组,表示一张 RGB 图片。通过 `Image.fromarray()` 方法将其转换为 PIL 图像对象,然后通过 `img.save()` 方法保存为 PNG 格式的文件。
相关问题
opencv numpy.ndarray 转换成图片格式
可以使用OpenCV中的`imwrite`函数将`numpy.ndarray`数组保存为图片格式。以下是一个例子:
```python
import cv2
import numpy as np
# 创建一个随机的numpy数组作为图像
img_array = np.random.randint(0, 256, size=(300, 400, 3), dtype=np.uint8)
# 将numpy数组保存为图片
cv2.imwrite("image.jpg", img_array)
```
这将创建一个名为`image.jpg`的图像文件,其中包含随机生成的300x400像素的彩色图像。
AttributeError: 'numpy.ndarray' object has no attribute 'imwrite'
这个错误通常是因为你在使用OpenCV的imwrite函数时,传入了一个Numpy数组,而不是图片路径。你需要将数组转换为图片,然后再将其保存到指定路径上。以下是一个示例代码:
```python
import cv2
import numpy as np
# 创建一个随机的Numpy数组作为图片
img = np.random.randint(0, 255, size=(300, 300, 3), dtype=np.uint8)
# 将Numpy数组转换为图片
cv2.imwrite('output.jpg', img)
```
在这个示例中,我们首先创建了一个随机的Numpy数组作为图片,然后使用OpenCV的imwrite函数将其保存到指定路径上。如果你的Numpy数组不是随机的,而是从其他来源获取的,请确保它的类型是np.uint8,并且它的形状(shape)是正确的。