首页 > 解决方案 > cv2.cvtcolor bgr2gray 似乎得到一个错误图像

问题描述

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

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

我使用的原始图像

丑陋的结果

标签: pythoncv2bgr

解决方案


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

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

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

希望这可以帮助!


推荐阅读