摘要
使用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()