摘要

使用opecv过程中经常需要使用plt输出图片作为前后对比,方便观察。
但是会出现plt显示时,颜色偏差严重的情况。
这是因为plt和imread二者颜色通道不同导致。

先看看图片

代码

首先通过imread读入源图并显示。

import cv2   as  cv
import numpy as np
import copy
import random 
from matplotlib import pyplot as plt
# cv.imread 读取图像格式为b,g,r
img = cv.imread('1.jpg')

然后 采用plt方法进行显示。
把imread生成的img使用plt输出。

plt.imshow(img)
plt.show()

看看结果:

在这里插入图片描述
出现了色差

原因:

cv.imread 读取图像格式为b,g,r
但是 plt显示按照 rgb次序!因此要转换一下。

解决方法:

加入下面的代码

b,g,r = cv.split(img)
img_rgb = cv.merge([r,g,b])
import cv2   as  cv
import numpy as np
import copy
import random 
from matplotlib import pyplot as plt
# cv.imread 读取图像格式为b,g,r
img = cv.imread('1.jpg')

#如果本身是彩图 似乎也没什么影响!
#plt显示按照 rgb次序!因此要转换
b,g,r = cv.split(img)
img_rgb = cv.merge([r,g,b])

plt.imshow(img_rgb)
plt.show()

看看结果