Matplotlibを使用してPythonでOpenCV画像を表示してみます。
Matplotlibモジュール,OpenCVモジュールは、Pythonの標準ライブラリではありませんので、事前にインストールする必要があります。
■Python
今回のPythonのバージョンは、「3.8.2」を使用しています。(Windows10)
■画像を用意する
Matplotlibを使用してPythonでOpenCV画像を表示する前に、まず表示させる画像を用意します。
今回は「squirrel_sample.jpg」のリスの画像を用意しました。
保存されている場所は「C:\Users\user\test(フォルダパス)」です。
■Matplotlibを使用してPythonでOpenCV画像を表示する
画像が用意できましたので、Matplotlibを使用してPythonでOpenCV画像を表示させるスクリプトを書いていきます。
■コード
import cv2 import matplotlib.pyplot as plt image= cv2.imread(r'C:\Users\user\test\squirrel_sample.jpg') plt.imshow(image) plt.show()
インポートでcv2(OpenCV)モジュールと、matplotlib.pyplotモジュールを呼び出して、imread()関数で今回用意した画像を読み込みます。
読み込んだ画像を、plt.imshow()関数で画像を表示させます。
■実行
今回のスクリプトを「display_image.py」という名前で保存し、コマンドプロンプトから実行してみます。
実行すると、ウインドウが表示され、今回用意した画像が表示されることが確認できました。確認できましたが、表示された画像は色の乱れがあります。このようになってしまう原因は、OpenCVが通常のRBG形式の逆であるGBRの順序で画像をレンダリングするためである。
■matplotlibでOpenCVから画像を正しくレンダリング(GBR画像をRGB画像に変換する)
表示された画像の色の乱れをなおすためには、GBR画像をRGB画像に変換する必要があります。
変換する際は、今回のスクリプトを変更する必要があります。
■コード
import cv2 import matplotlib.pyplot as plt image= cv2.imread(r'C:\Users\user\test\squirrel_sample.jpg') plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)) plt.show()
画像の色の乱れをなおすためには、cv2.cvtColor()関数を使います。この関数を使うと、matplotlibが画像をレンダリングするカラーコードを変更できます。引数に「cv2.COLOR_BGR2RGB」と記述することで、GBR画像をRGB画像に変換することができます。これで画像の色の乱れがなおります。
■実行
今回のスクリプトを変更し、コマンドプロンプトから実行してみます。
実行してみると、OpenCVモジュールによりGBR画像となっていた画像が変換されてRGB画像となり、色の乱れがなくなっていることが確認できました。
コメント