matplotlib为图像添加蓝色阴影

Ano*_*oop 5 python opencv image-processing matplotlib

我正在尝试使用matplotlib进行基本操作,但我发现只要我尝试使用matplotlib显示图像,就会在图像中添加蓝色阴影.

例如,

码:

# import the necessary packages
import numpy as np
import cv2
import matplotlib.pyplot as plt

image = cv2.imread("./data/images/cat_and_dog.jpg")
cv2.imshow('image',image) # Display the picture


plt.imshow(image)
plt.show()

cv2.waitKey(0) # wait for closing
cv2.destroyAllWindows() # Ok, destroy the window
Run Code Online (Sandbox Code Playgroud)

opencv gui和matplotlib显示的图像是不同的.

在此输入图像描述

甚至直方图也会失真,而不仅仅是显示

在此输入图像描述

如何避免图像上出现此蓝色阴影

Oph*_*rmi 11

请参阅:http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_gui/py_image_display/py_image_display.html#using-matplotlib

警告:OpenCV加载的彩色图像处于BGR模式.但Matplotlib以RGB模式显示.因此,如果使用OpenCV读取图像,则Matplotlib中的彩色图像将无法正确显示.有关详细信息,请参阅练习.

您可以plt.imshow(image)使用以下行替换您的行:

im2 = image.copy()
im2[:, :, 0] = image[:, :, 2]
im2[:, :, 2] = image[:, :, 0]
plt.imshow(im2)
Run Code Online (Sandbox Code Playgroud)