【问题标题】:PIL and opencv display different image background from same imagePIL 和 opencv 显示来自同一图像的不同图像背景
【发布时间】:2020-04-17 20:53:14
【问题描述】:

我有如下图片:

我尝试在 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 给了我白色背景。 这是怎么回事?

【问题讨论】:

    标签: opencv python-imaging-library


    【解决方案1】:

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

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

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

    【讨论】: