http://www.yuyong.net

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

电脑现已成为我们工作、生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到处理opencv里用plt显示imread读取图像偏色问题的问题,如果我们遇到了处理opencv里用plt显示imr...

电脑现已成为我们工作、生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到处理opencv里用plt显示imread读取图像偏色问题的问题,如果我们遇到了处理opencv里用plt显示imread读取图像偏色问题的情况,该怎么处理怎么才能解决处理opencv里用plt显示imread读取图像偏色问题带来的困扰呢,对于这样的问题其实我们只需要pycharm+win7环境opencv3+ python3首先通过imread读入源图并显示。import cv2 as cvimport numpy as npimport copyimport randomfrom matplotlib import pyplot as plt# cv.imread 读取图像格式为b,g,rimg = cv.imread('c:\\meiping1.png这样就解决了这样的问题,接下来给大家带来处理opencv里用plt显示imread读取图像偏色问题的详细操作步骤。

工具/原料

pycharm+win7环境
opencv3+ python3

方法/步骤

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

import cv2 as cvimport numpy as npimport copyimport randomfrom matplotlib import pyplot as plt# cv.imread 读取图像格式为b,g,rimg = cv.imread('c:\\meiping1.png')cv.imshow("img",img)

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

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

然后 采用plt方法进行显示。

把imread生成的img使用plt输出。

plt.imshow(img)plt.show()

结果发现出现严重偏色。

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

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

原因:

cv.imread 读取图像格式为b,g,r

但是plt显示按照 rgb次序!因此要转换一下。

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

解决方法:

b,g,r = cv.split(img)

img_rgb = cv.merge([r,g,b])

先分离 调整此序后,合并。

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

整体代码:

import cv2 as cv

import numpy as np

import copy

import random

from matplotlib import pyplot as plt

# imread的第二个参数

# 无 代表是原图,

# 等于1代表是灰度图

# 大于1彩色图

# cv.imread 读取图像格式为b,g,r

img = cv.imread('c:\\meiping1.png')

cv.imshow("img<1",img)

#如果本身是彩图 似乎也没什么影响!

img = cv.imread('c:\\meiping1.png', 1)

cv.imshow("img=1",img)

img = cv.imread('c:\\meiping1.png', 3)

cv.imshow("img>1",img)

plt.imshow(img)

plt.show()

b,g,r = cv.split(img)

img_rgb = cv.merge([r,g,b])

plt.figure()

#plt显示按照 rgb次序!因此要转换

plt.imshow(img_rgb)

plt.show()

cv.waitKey(0)

附图为转化后 plt显示效果

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

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

注意事项

plt显示按照 rgb次序 imread BGR次序
本文实现在 pycharm+win7+opencv3+ python3

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。