为什么这种颜色会逆转?

时间:2018-04-29 04:24:27

标签: python opencv image-processing gaussian

我正在学习计算机视觉课程:https://in.udacity.com/course/introduction-to-computer-vision--ud810

讲师解释了高斯滤波器如何导致图像模糊。教师使用matlab来演示它,但我使用的是带有opencv的python 3。我运行了以下代码:

import cv2
from matplotlib import pyplot as pl

image = cv2.imread("Desert.jpg")
blur = cv2.GaussianBlur(image,(95,95),5)
cv2.imshow("desert", image)
pl.imshow(blur)
pl.xticks([]), pl.yticks([])
pl.show()

这是原始图像:
Original image

这就是"模糊"图片:
"blur" image

毫无疑问,图像模糊不清。但颜色是如何互换的?这座山是蓝色的,而天空是砖红色的?

1 个答案:

答案 0 :(得分:1)

因为您使用opencv绘制一个,使用matplotlib绘制另一个。

here给出的解释如下:

  

OpenCV和Matplotlib中的像素排序存在差异。 OpenCV遵循BGR顺序,而matplotlib可能遵循RGB顺序。

由于您使用opencv阅读并显示图像,因此它处于BGR顺序,您没有看到任何错误。但是当你用matplotlib显示它时,它认为图像是RGB格式,它改变了蓝色和红色通道的顺序。