web-dev-qa-db-ja.com

matplotlib imshow歪む色

私はmatplotlib.pyplotの関数imshowを使用しようとしましたが、グレースケールイメージを表示するために完全に機能します。 RGB画像を表現しようとすると、色が変わり、より青みがかった色が表示されます。

例を見る:

import cv2
import matplotlib.pyplot as plt
lena=cv2.imread("lena.jpg")
plt.imshow(lena)
plt.show()

結果の画像は this のようなものです

元の画像は this ですが

カラーマップに関連するものである場合、それをRGB画像で機能させる方法はありますか?

10
dberga

これは私のために働きました:

plt.imshow(lena[:,:,::-1]) # RGB-> BGR

同じアイデアですが、より優れた堅牢なアプローチは "Ellipsis"@ rayryeng によって提案された使用です:

plt.imshow(lena[...,::-1])
11
AGN Gazer

OpenCVは、予想されるRGBではなく、BGRで画像を表します。逆順ですので、画像のブルーが出やすくなります。 BGRからRGBに変換するには、次の行(コードのコメントの下)を使用してみてください。

import cv2
import matplotlib.pyplot as plt
lena=cv2.imread("lena.jpg")
#plt.imshow(lena)
#plt.axis("off")
#Converts from BGR to RGB
plt.imshow(cv2.cvtColor(lena, cv2.COLOR_BGR2RGB))
plt.show()
10
Nivii1406