web-dev-qa-db-ja.com

plt.showとcv2.imshowの違いは?

_plt.show_&cv2.imshow()を使用して同じ画像を呼び出すと、出力画像に違いがあるのはなぜですか?

これが私のコードです:

_import cv2
import numpy as np
from matplotlib import pyplot as plt

src=cv2.imread('fruits1.jpg') # Source image

plt.subplot(211),plt.imshow(src),plt.title('image')
plt.xticks([]),plt.yticks([])
plt.show()

cv2.imshow('image',src)
cv2.waitKey(0)
cv2.destroyWindow()
_

これが_plt.show_の画像です。

image output for plt.show

2番目は元の画像です。

image output from cv2.show

plt.show()で変更が必要ですか?

13
Aman Garg

OpenCVはRGBではなくBGR順で画像を保存するためです。

plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))をお試しください

例については here を参照してください。

14
laks
1
MedImage