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代表保存图片的品质,越高图片保存后分辨率越大
便能显示正常的灰度图