2016 - 2024

感恩一路有你

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

浏览量:4784 时间:2024-01-21 14:56:32 作者:采采

问题描述

在使用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显示效果

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。