一、问题

当使用opencv函数imread()读取图片时,颜色的顺序是BGR(blue、green、red),而Pillow的颜色顺序又是RGB,因此我们可能需要将BGR转RGB。

二、转换

可以通过以下几种方法实现BGR转RGB

import cv2
import numpy as np
from PIL import Image

# 方法一
im_bgr = cv2.imread('data/src/lena.jpg')

im_rgb = im_bgr[:, :, [2, 1, 0]]
Image.fromarray(im_rgb).save('data/dst/lena_swap.jpg')
# 方法二
im_bgr = cv2.imread('data/src/lena.jpg')

im_rgb = im_bgr[:, :, ::-1]
Image.fromarray(im_rgb).save('data/dst/lena_swap_2.jpg')
# 方法三
im_cv = cv2.imread('data/src/lena.jpg')

im_rgb = cv2.cvtColor(im_cv, cv2.COLOR_BGR2RGB)
Image.fromarray(im_rgb).save('data/dst/lena_rgb_pillow.jpg')
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐