Matplotlib中的RGB图像显示:plt.imshow返回蓝色图像

时间:2019-03-02 14:12:14

标签: opencv matplotlib

我正在尝试使用matplotlib显示RGB图像。这是代码:

# import libraries
import numpy as np
import cv2
from matplotlib import pyplot as plt

# use opencv to load the image
image = cv2.imread("path/to/file/image.jpg", 1)

# convert it to numpy array
pixels = np.array(image)

然后,当我尝试使用以下方式形象化图像时:

plt.imshow(pixels)
plt.show()

它将返回全蓝色的图片。我不明白为什么,因为该图像是正常的彩色图像。我尝试使用多个图像,但问题仍然存在。而且,在笔记本电脑上班时,我没有任何问题。

2 个答案:

答案 0 :(得分:3)

您可以直接使用此行将BGR图像转换为RGB:

image = cv2.imread("path/to/file/image.jpg")[:,:,::-1]

答案 1 :(得分:2)

由于您正在使用opencv读取图像,而opencv读取并以BGR格式而不是RGB颜色格式显示图像,因此您面临此问题。而matplotlib使用RGB颜色格式显示图像。 尝试使用:

image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

pixels = np.array(image)

plt.imshow(pixels)
plt.show()