Python中运用pillow库实现图片与数组互换
时间: 2024-12-25 21:35:28 浏览: 23
Pillow库,原名PIL(Python Imaging Library),是一个用于处理各种图像文件格式的高级库,支持常见的图像操作如打开、保存、裁剪、旋转、滤镜等。在Python中,我们可以利用Pillow将图片转换成数组(NumPy中的ndarray),反之亦然。
将图片转为数组:
```python
from PIL import Image
import numpy as np
# 打开图片
img = Image.open('image.jpg')
# 转换为灰度图(或其他颜色模式)
gray_img = img.convert('L')
# 将图像数据转换为numpy数组
img_array = np.array(gray_img)
```
这里`np.array()`函数会把像素值作为一维数组返回,每一行对应图像的一行像素。
反过来,将数组转换为图片:
```python
# 创建一个numpy数组
image_data = np.random.randint(0, 256, (height, width), dtype=np.uint8)
# 使用PIL创建一个新的Image对象
new_img = Image.fromarray(image_data, mode='L') # 根据需要设置颜色模式
# 保存图像
new_img.save('output.jpg')
```
这里`Image.fromarray()`函数就是从数组构建新的图片。
相关问题
读取图片,数组 Python实现
Python中可以使用Pillow库来读取和处理图片,该库是Python Imaging Library的一个分支。具体实现步骤如下:
1. 安装Pillow库
在命令行中输入以下命令:
```
pip install pillow
```
2. 导入Pillow库
在Python程序中导入Pillow库:
```python
from PIL import Image
```
3. 读取图片
使用Image.open()方法读取图片:
```python
img = Image.open('image.jpg')
```
其中,'image.jpg'为图片文件的路径。
4. 将图片转换为数组
使用numpy库可以方便地将图片转换为数组:
```python
import numpy as np
img_arr = np.array(img)
```
此时,img_arr即为将图片转换为的数组。
阅读全文