📜  如何从 opencv 返回 PIL 图像 - Python (1)

📅  最后修改于: 2023-12-03 15:08:14.425000             🧑  作者: Mango

如何从 OpenCV 返回 PIL 图像 - Python

在使用 Python 对图像进行处理时,经常会使用到 OpenCV 和 PIL(Python Imaging Library)这两个库。OpenCV 主要用于图像的读取和处理,而 PIL 则用于图像的格式转换和显示。本文将介绍如何从 OpenCV 中返回 PIL 图像。

方法一:使用 OpenCV 的 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)
方法二:使用 numpy 的 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 类型,因此需要进行类型转换。