pyplot 正在改变图像的颜色

Cop*_*cel 1 python opencv image matplotlib

我尝试使用下面的代码绘制一些子图。当我使用 OpenCv 时,图像很好,但是当我使用 pyplot 时,颜色发生了变化。请查看图像和代码。

在此输入图像描述

用 cv2 绘制

在此输入图像描述 用 pyplot 绘制

import cv2
from matplotlib import pyplot as plt

img = cv2.imread('image.jpg')

fig = plt.figure()

ax1 = fig.add_subplot(221)
ax2 = fig.add_subplot(223)
ax3 = fig.add_subplot(224)

ax1.imshow(img)
ax1.set_title('Original Image')



ax2.imshow(imgRedimensionata_proiect)
ax2.set_title('Alg image')

ax3.imshow(imgRedimensionata_traditional)
ax3.set_title('Traditional resize')

fig.show()
cv2.imshow('image',img)
cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)

The*_*ion 5

看起来它正在采用 BGR 并将其显示为 RGB(反之亦然)。添加类似这样的内容来修复它。

b,g,r = cv2.split(img)       # get b,g,r
img = cv2.merge([r,g,b])     # switch it to rgb
Run Code Online (Sandbox Code Playgroud)

参考

  • CV2 将图像读取为 numpy 数组,因此您也可以反向寻址颜色,例如 `rgb_img = bgr_img[..., ::-1]`,应该节省一些内存 (2认同)