德国世界杯_2012年世界杯 - fyycdq.com

德国世界杯_2012年世界杯 - fyycdq.com

OpenCV灰度化之后图片为绿色原因及解决办法

opencv读入JPG图片的颜色顺序是BGR(blue, green, red)

PIL读入JPG图片颜色顺序是RGB

skimage读入JPG图片颜色顺序是RGB

matplotlib在plt的时候是默认RGB显示的,所以

img = cv2.imread(path)

img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

print(img)

plot.imshow(img)

plot.show()

此时显示的图片依旧是绿色的 代码改成:

img = cv2.imread(path) # 读取图片

img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

print(img)

plot.imshow(img, cmap='gray') # 不加cmap则是默认三通道展示

plot.show()

cv2.imwrite('img.jpg',img, [cv2.IMWRITE_JPEG_QUALITY, 50]) # 50代表保存图片的品质,越高图片保存后分辨率越大

便能显示正常的灰度图