我正在 Python OpenCV 中加载彩色图像并进行绘图。但是,我得到的图像的颜色都混在一起了。
代码如下:
import cv2
import numpy as np
from numpy import array, arange, uint8
from matplotlib import pyplot as plt
img = cv2.imread('lena_caption.png', cv2.IMREAD_COLOR)
bw_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
images = []
images.append(img)
images.append(bw_img)
titles = ['Original Image','BW Image']
for i in xrange(len(images)):
plt.subplot(1,2,i+1),plt.imshow(images[i],'gray')
plt.title(titles[i])
plt.xticks([]),plt.yticks([])
plt.show()
最佳答案
OpenCV 使用 BGR 作为图像的默认颜色顺序,matplotlib 使用 RGB。当您在 matplotlib 中显示使用 OpenCv 加载的图像时, channel 将返回到前面。
解决此问题的最简单方法是使用 OpenCV 将其显式转换回 RGB,就像您在创建灰度图像时所做的那样。
RGB_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
然后在你的情节中使用它。
关于python - OpenCV在加载时为彩色图像提供错误的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39316447/