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