Python opencv PIL numpy base64互相转化
时间: 2024-01-27 19:11:48 浏览: 90
Python 实现OpenCV格式和PIL.Image格式互转
将Python的OpenCV、PIL、numpy和base64互相转换可以使用以下步骤:
1. 将图像从文件中读取到内存中,使用OpenCV或PIL中的一个库。
2. 将图像转换为numpy数组。
3. 使用numpy数组进行图像处理。
4. 将numpy数组转换回PIL图像或OpenCV图像。
5. 将PIL图像或OpenCV图像转换为base64编码的字符串。
6. 将base64编码的字符串转换为PIL图像或OpenCV图像。
7. 将PIL图像或OpenCV图像转换回numpy数组。
以下是一个示例代码,可用于将图像从文件中读取,转换为numpy数组,对其进行处理,然后将其转换回PIL图像并将其保存到文件中:
```
import cv2
from PIL import Image
import numpy as np
import base64
# 读取图像到numpy数组
img = cv2.imread('image.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img_array = np.array(img)
# 对图像进行处理
# ...
# 将numpy数组转换回PIL图像
pil_img = Image.fromarray(img_array)
# 将PIL图像保存到文件中
pil_img.save('new_image.jpg')
# 将PIL图像转换为base64编码的字符串
with open('new_image.jpg', 'rb') as f:
img_base64 = base64.b64encode(f.read()).decode('utf-8')
# 将base64编码的字符串转换为PIL图像
img_data = base64.b64decode(img_base64)
pil_img = Image.open(io.BytesIO(img_data))
# 将PIL图像转换回numpy数组
img_array = np.array(pil_img)
```
阅读全文