处理opencv里用plt显示imread读取图像偏色问题
问题描述
在使用opencv过程中,我们通常会使用plt输出图像进行前后对比以方便观察。然而,有时在使用plt显示图像时,会出现严重的颜色偏差问题。这是因为plt和imread的颜色通道顺序不同导致的。
解决方法
为了解决这个问题,我们需要将imread读取的图像的颜色通道重新调整顺序。具体步骤如下:
1. 首先,使用读入源图并显示。
``` python
import cv2 as cv
import numpy as np
import copy
import random
from matplotlib import pyplot as plt
img ('')
("原始img", img)
```
2. 然后,使用plt方法对imread生成的img进行显示。
``` python
(img)
()
```
3. 发现图片出现严重的颜色偏差。
4. 原因是读取图像的颜色通道顺序为b,g,r,而plt显示图像时按照rgb顺序。所以我们需要对颜色通道进行转换。
5. 解决方法是将颜色通道分离,调整顺序后再合并。
``` python
b, g, r cv.split(img)
img_rgb ([r, g, b])
```
6. 最后,使用plt显示调整后的图像。
``` python
()
(img_rgb)
()
```
7. 完整代码如下:
``` python
import cv2 as cv
import numpy as np
import copy
import random
from matplotlib import pyplot as plt
img ('')
("img<1", img)
# 如果本身是彩图,似乎也没什么影响!
img ('', 1)
("img1", img)
img ('', 3)
("img>1", img)
(img)
()
b, g, r cv.split(img)
img_rgb ([r, g, b])
()
(img_rgb)
()
cv.waitKey(0)
```
附图为转换后的plt显示效果
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。