4

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

导入 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

我使用的原始图像

丑陋的结果

4

1 回答 1

7

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

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

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

希望这可以帮助!

于 2018-08-28T14:48:39.803 回答