使用matplotlib绘制PNG文件时反转颜色

Edg*_*uay 6 python opencv matplotlib

我正在尝试使用matplotlib显示PNG文件,当然还有python.对于此测试,我生成了以下图像: 原始文件

现在,我将图像加载并转换为多维numpy矩阵:

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

cube = cv2.imread('Graphics/Display.png')
plt.imshow(cube)
plt.ion()
Run Code Online (Sandbox Code Playgroud)

当我尝试在matplotlib中绘制该图像时,颜色会反转:情节

如果矩阵没有任何修改,为什么图中的颜色是错误的?

提前致谢.

bog*_*ron 19

看来你可能会以某种方式RGB切换BGR.请注意,您的果岭会保留,但所有蓝调都会变为红色.如果cube具有形状(M,N,3),试换cube[:,:,0]cube[:,:,2].你可以这样做numpy:

rgb = numpy.fliplr(cube.reshape(-1,3)).reshape(cube.shape)
Run Code Online (Sandbox Code Playgroud)

OpenCV 文档:

注意:对于彩色图像,解码图像将以BGR顺序存储通道.

  • 很好的解决方法,但问题仍然存在:为什么会发生? (2认同)

Ale*_*erg 10

尝试:

plt.imshow(cv2.cvtColor(cube, cv2.COLOR_BGR2RGB))
Run Code Online (Sandbox Code Playgroud)