首页 > 解决方案 > PIL 和 opencv 显示来自同一图像的不同图像背景

问题描述

我有如下图像:

原始图像 我尝试在 google colab 上绘制它们。通过使用 PIL:


    from PIL import Image
    import matplotlib.pyplot as plt

    img = Image.open('hiclipart.com(1).png')
    plt.imshow(img)

并通过使用opencv:

import cv2
import matplotlib.pyplot as plt

img = cv2.imread("hiclipart.com(1).png")
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(img)

但是opencv给了我黑色背景的图像,而PIL给了我白色背景。这是怎么回事?

标签: opencvpython-imaging-library

解决方案


当您使用OpenCV打开图像时,您没有指定任何标志,这意味着您获得了 3 通道、8 位 BGR。

但是,您的图像有第四个 alpha 通道,除非您使用,否则您会丢弃它:

img = cv2.imread("path", cv2.IMREAD_UNCHANGED)

推荐阅读