matplotlib adding blue shade to an image

image-processing, matplotlib, opencv, python

Solution

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

Warning: Color image loaded by OpenCV is in BGR mode. But Matplotlib displays in RGB mode. So color images will not be displayed correctly in Matplotlib if image is read with OpenCV. Please see the exercises for more details.

you can replace your `plt.imshow(image)` line with the following lines:

im2 = image.copy()
im2[:, :, 0] = image[:, :, 2]
im2[:, :, 2] = image[:, :, 0]
plt.imshow(im2)

Problem

I am trying to use matplotlib for basic operations but I see that whenever I try to display an image using matplotlib, a blue shade is added to the image. For example, Code: ``` # 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 ``` And the images shown by opencv gui and matplotlib are different. Even the histogram is distorted and not just the display How do I avoid this blue shade on an image

Original source

Related problems