Lee*_*evo 20 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)
Run Code Online (Sandbox Code Playgroud)
然后,当我尝试使用以下方法可视化图像时:
plt.imshow(pixels)
plt.show()
Run Code Online (Sandbox Code Playgroud)
它返回一张全是蓝色的图片。我不明白为什么,因为图像是正常的彩色图像。我尝试了多个图像,但问题仍然存在。此外,我的笔记本电脑在工作,我没有遇到任何问题。
小智 19
您正面临这个问题,因为您正在使用 opencv 读取图像,而 opencv 以 BGR 格式而不是 RGB 颜色格式读取和显示图像。而 matplotlib 使用 RGB 颜色格式来显示图像。尝试使用:
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
pixels = np.array(image)
plt.imshow(pixels)
plt.show()
Run Code Online (Sandbox Code Playgroud)
小智 14
您可以直接使用此行将 BGR 图像转换为 RGB:
image = cv2.imread("path/to/file/image.jpg")[:,:,::-1]
Run Code Online (Sandbox Code Playgroud)