我正在使用 cv2.imread() 读取图像,并将其转换为灰度。但是为什么我显示的时候不是灰度呢?

I am reading an image with cv2.imread(), and converting it to grayscale. However why is it not in grayscale when I display it?

我去阅读了 cv2.imread() 方法的语法,它说指定标志=0 将加载灰度图像。

原图是这样的:

Original Image

并且我使用以下库执行了以下代码,没有错误。

import cv2 import pytesseract import matplotlib import image

img=cv2.imread("C:/Users/HP_Demo/Desktop/cv2/sample02.png",0)

plt.imshow(img)

plt.show()

结果是这样的: Result image

我真的不知道,但尝试使用它:cv2.imread("path", cv2.IMREAD_GRAYSCALE).

PS。并且最好使用 sys.path.join() 而不是原始 /

import cv2 

img=cv2.imread("colorful.png",1)
cv2.imshow("",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果:

import cv2 

img=cv2.imread("colorful.png",0) # same image changed the 1 to 0
cv2.imshow("",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果:

结论

正如我在评论中所说,可能是您使用的图像导致无灰度。