处理opencv里用plt显示imread读取图像偏色问题

处理opencv里用plt显示imread读取图像偏色问题

  • 摘要
  • 代码
  • 看看结果:
  • 原因:
  • 解决方法:
  • 看看结果

摘要

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

先看看图片
处理opencv里用plt显示imread读取图像偏色问题_第1张图片

代码

首先通过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()

看看结果:

处理opencv里用plt显示imread读取图像偏色问题_第2张图片
出现了色差

原因:

cv.imread 读取图像格式为b,g,r
但是 plt显示按照 rgb次序!因此要转换一下。
处理opencv里用plt显示imread读取图像偏色问题_第3张图片

解决方法:

加入下面的代码

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()

看看结果

处理opencv里用plt显示imread读取图像偏色问题_第4张图片

你可能感兴趣的:(处理opencv里用plt显示imread读取图像偏色问题)