我想使用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()
答案 0 :(得分:0)
这是因为OpenCV以 BGR (蓝绿色红色)而不是常用的RGB(红绿色蓝色)加载图像。 Matplotlib以 RGB 显示。
因此,根据this的帖子,您可以使用plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
将颜色从BGR转换为RGB,以便Matplotlib可以正常阅读。
希望这会有所帮助。