Matplotlibを使用してPythonでOpenCV画像を表示する

Matplotlibを使用してPythonでOpenCV画像を表示してみます。

Matplotlibモジュール,OpenCVモジュールは、Pythonの標準ライブラリではありませんので、事前にインストールする必要があります。

■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画像となり、色の乱れがなくなっていることが確認できました。

コメント

タイトルとURLをコピーしました