cv2.cvtcolor bgr2gray似乎收到错误图像

时间:2018-08-28 14:44:25

标签: python cv2 bgr

#代码如下,实现了,但是结果可能是错误的,这不是我想要的灰度,有人会帮我解决,这看起来很简单,但是我只是不知道错在哪里

导入cv2     导入matplotlib.pyplot作为plt     将numpy导入为np     导入matplotlib.image作为mpimg     img = cv2.imread('calibration_test.png')

# i want simply convert the rgb image to grayscale and then print it out
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
plt.imshow(gray)
print(gray.shape)
# but the outcome is a colorful image

the original image i used

the ugly outcome

1 个答案:

答案 0 :(得分:3)

灰度转换正确完成。问题在于您如何显示图像。试试这个:

plt.imshow(gray, cmap='gray')

默认情况下,imshow将其自己的颜色键添加到单通道图像中,以使其更易于查看。一个典型的例子是热图像,通常显示蓝色和红色,但是所有颜色仅取决于一个通道。

希望这会有所帮助!