使用matplotlib绘制PNG文件时反转颜色
问题内容:
我正在尝试使用matplotlib以及python显示PNG文件。对于此测试,我生成了以下图像:
现在,我加载图像并将其转换为多维numpy矩阵:
import numpy as np
import cv2
from matplotlib import pyplot as plt
cube = cv2.imread('Graphics/Display.png')
plt.imshow(cube)
plt.ion()
当我尝试在matplotlib中绘制该图像时,颜色会反转:
如果矩阵没有任何修改,为什么绘图中的颜色是错误的?
提前致谢。
问题答案:
看来您可能以某种方式进行了RGB
切换BGR
。请注意,您的绿色被保留,但是所有蓝色变为红色。如果cube
形状为(M,N,3),请尝试cube[:,:,0]
与交换cube[:,:,2]
。您可以numpy
这样操作:
rgb = numpy.fliplr(cube.reshape(-1,3)).reshape(cube.shape)
从OpenCV
文档中:
注意:对于彩色图像,解码后的图像将按BGR顺序存储频道。