私はmatplotlib.pyplotの関数imshowを使用しようとしましたが、グレースケールイメージを表示するために完全に機能します。 RGB画像を表現しようとすると、色が変わり、より青みがかった色が表示されます。
例を見る:
import cv2
import matplotlib.pyplot as plt
lena=cv2.imread("lena.jpg")
plt.imshow(lena)
plt.show()
結果の画像は this のようなものです
元の画像は this ですが
カラーマップに関連するものである場合、それをRGB画像で機能させる方法はありますか?
これは私のために働きました:
plt.imshow(lena[:,:,::-1]) # RGB-> BGR
同じアイデアですが、より優れた堅牢なアプローチは "Ellipsis"@ rayryeng によって提案された使用です:
plt.imshow(lena[...,::-1])
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()