Matplotlib显示不正确的颜色

时间:2020-05-14 09:29:16

标签: python matplotlib

我想使用matplotlib显示图像。我想分割图像的通道并分别显示。仅当我要显示红色像素时,它才会将它们显示为蓝色。反之亦然。绿色进展顺利。顺便说一句,如果我用cv2.imshow()显示它们,一切都很好。

empty_image = img.copy()
empty_image = np.zeros(img.shape, img.dtype)

channel=empty_image.copy()
channel[:,:,0]=img[:,:,0]

fig, ax = plt.subplots()
ax.imshow(channel, cmap="binary")
ax.spines['top'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.set_xticks([])
ax.set_yticks([])
plt.show()

1 个答案:

答案 0 :(得分:0)

这是因为OpenCV以 BGR (蓝绿色红色)而不是常用的RGB(红绿色蓝色)加载图像。 Matplotlib以 RGB 显示。

因此,根据this的帖子,您可以使用plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))将颜色从BGR转换为RGB,以便Matplotlib可以正常阅读。

希望这会有所帮助。