Matplotlib で画像をグレースケールで表示する方法

Suraj Joshi 2023年1月30日
  1. Matplotlib で matplotlib.pyplot.imshow() を使用して画像をグレースケールで表示する
  2. 例 Matplotlib 画像をグレースケールで表示する
Matplotlib で画像をグレースケールで表示する方法

Matplotlib を用いてグレースケールの画像を表示します。には、matplotlib.pyplot.imshow() を用います。パラメータ cmap'gray' に設定し、vmin0 に設定し、vmax255 に設定します。

Matplotlib で matplotlib.pyplot.imshow() を使用して画像をグレースケールで表示する

matplotlib.pyplot.imshow(X,
                         cmap=None,
                         norm=None,
                         aspect=None,
                         interpolation=None,
                         alpha=None,
                         vmin=None,
                         vmax=None,
                         origin=None,
                         extent=None,
                         shape= < deprecated parameter > ,
                         filternorm=1,
                         filterrad=4.0,
                         imlim= < deprecated parameter > ,
                         resample=None,
                         url=None,
                         *,
                         data=None,
                         **kwargs)

例 Matplotlib 画像をグレースケールで表示する

import matplotlib.pyplot as plt
import matplotlib.image as img

image = img.imread("lena.jpg")

plt.imshow(image[:, :, 1], cmap="gray", vmin=0, vmax=255, interpolation="none")
plt.show()

出力:

Matplotlib は画像をグレースケールで表示する

このメソッドは matplotlib.image モジュールの imread() 関数を用いて RGB 画像である画像 lena.jpg を読み込みます。画像をグレースケールとして表示します。には、1つのカラーチャンネルが必要です。そこで次のステップでは、1つのカラーチャンネルだけを取り、cmap'gray'vmin0vmax255 に設定して plt.imshow() メソッドを使って画像を表示します。

最後に、show() メソッドを用いて画像をグレースケールで表示します。ウィンドウを表示します。上記のスクリプトを実行するには、現在の作業ディレクトリに lena.jpg がなければならません。

RGB 画像をグレースケール画像に変換するには、1つのカラーチャンネルだけを取るのは適切な方法ではありません。これらのアルゴリズムは、利用可能なほとんどすべての一般的な画像処理ライブラリに実装されています。以下に、PIL を用いた例を示します。

import numpy as np
import matplotlib.pyplot as plt
from PIL import Image

image = Image.open("lena.jpg")
gray_image = image.convert("L")
gray_image_array = np.asarray(gray_image)
plt.imshow(gray_image_array, cmap="gray", vmin=0, vmax=255)
plt.show()

出力:

Matplotlib による画像モジュールを用いたグレースケール画像の表示

ここでは、現在の作業ディレクトリにある画像 lena.jpgopen() 関数で読み込み、'L' を引数として convert() メソッドを用いて画像をグレースケールに変換します。その後、グレースケール画像を NumPy 配列に変換し、imshow() メソッドを用いて画像を表示します。

著者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

関連記事 - Matplotlib Images