我尝试使用matplotlib.pyplot中的imshow函数,它可以很好地显示灰度图像。当我试图表示rgb图像时,它会改变颜色,显示更蓝色的颜色。
查看示例:
import cv2
import matplotlib.pyplot as plt
lena=cv2.imread("lena.jpg")
plt.imshow(lena)
plt.show()
生成的图像类似于this
原始图片为this
如果它是与colormap相关的东西,有什么方法可以使它与rgb图像一起使用?
答案 0 :(得分:9)
这对我有用:
plt.imshow(lena[:,:,::-1]) # RGB-> BGR
同样的想法,但更好,更强大的方法是使用"ellipsis"提出的@rayryeng:
plt.imshow(lena[...,::-1])
答案 1 :(得分:8)
OpenCV代表BGR中的图像,而不是我们期望的RGB。由于它的顺序相反,您往往会在图像中看到蓝色。 尝试使用以下行(代码中的注释)从BGR转换为RGB:
import cv2
import matplotlib.pyplot as plt
lena=cv2.imread("lena.jpg")
#plt.imshow(lena)
#plt.axis("off")
#Converts from BGR to RGB
plt.imshow(cv2.cvtColor(lena, cv2.COLOR_BGR2RGB))
plt.show()