你是否有过出现图片有色差色偏的问题(python用matplotlib显示opencv绘制的图像)

问题描述

在使用plt.savefig()保存图片后,再使用cv2.imread读取该图片文件的时候,会出现色差色偏的问题(即为红变蓝,蓝变红)。

出现色差色偏的图片:
你是否有过出现图片有色差色偏的问题(python用matplotlib显示opencv绘制的图像)_第1张图片
原图片:
你是否有过出现图片有色差色偏的问题(python用matplotlib显示opencv绘制的图像)_第2张图片

问题出现的原因

cv2.imread() 读取图像格式为BGR(由于以前流行BGR的图像显示方式,但近几年来改为流行RGB的图像显示格式),而 matplotlib 里面的图像显示的格式为RGB因此cv.imread()读取matplotlib保存下来的文件会导致色差色偏的问题。

解决方法

import cv2 as cv

image = cv.imread('plt.savefig保存的路径')
image = image[:, :, ::-1] # 前两个冒号表示第一第二维度不变,-1表示将第三维度倒序排列

这样问题就能够解决了~~
希望这篇文章对大家的学习有所帮助!

你可能感兴趣的:(没有报错但运行起来奇怪的问题,opencv,python)