📅  最后修改于: 2023-12-03 15:08:14.425000             🧑  作者: Mango
在使用 Python 对图像进行处理时,经常会使用到 OpenCV 和 PIL(Python Imaging Library)这两个库。OpenCV 主要用于图像的读取和处理,而 PIL 则用于图像的格式转换和显示。本文将介绍如何从 OpenCV 中返回 PIL 图像。
cv2.cvtColor()
函数OpenCV 中读取的图像为 BGR 格式,而 PIL 中读取的图像为 RGB 格式。因此,我们需要将 BGR 转换为 RGB。可以使用 OpenCV 的 cv2.cvtColor()
函数进行转换。
import cv2
from PIL import Image
# 读取图像
img = cv2.imread('test.jpg')
# 转换为 RGB
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 转换为 PIL 图像
pil_img = Image.fromarray(img)
asarray()
函数与方法一类似,我们可以使用 numpy 的 asarray()
函数将 OpenCV 中读取的图像转换为 numpy 数组,再将其转换为 PIL 图像。
import cv2
import numpy as np
from PIL import Image
# 读取图像
img = cv2.imread('test.jpg')
# 转换为 PIL 图像
pil_img = Image.fromarray(np.uint8(img))
需要注意的是,PIL 中读取的图像为 uint8 类型,因此需要进行类型转换。