ホームページ  >  記事  >  バックエンド開発  >  Matplotlib を使用すると、グレースケール画像がカラーマップとともに表示されるのはなぜですか?

Matplotlib を使用すると、グレースケール画像がカラーマップとともに表示されるのはなぜですか?

DDD
DDDオリジナル
2024-10-27 10:11:031091ブラウズ

Why Does My Grayscale Image Appear With a Colormap When Using Matplotlib?

Matplotlib を使用して画像をグレースケールとして表示する

matplotlib.pyplot.imshow() を使用して画像を操作する場合、画像をグレースケールに変換することが不可欠です。要素を色でオーバーレイします。この変換を容易にするために、PIL の Image.open().convert("L") 関数が一般的に使用されます。

問題

画像を変換するために PIL を使用しているにもかかわらず、グレースケールで matplotlib.pyplot.imshow() で表示すると、画像は真のグレースケールではなくカラーマップで表示されます。

解決策

この問題を解決するには、 matplotlib.pyplot.imshow() を呼び出すときにカラーマップ引数を指定することが重要です。デフォルトでは、matplotlib は画像に色を導入する可能性のあるカラーマップを選択します。グレースケール表現を保証するには、cmap='gray' を設定し、vmin=0 および vmax=255 を使用してグレー値の範囲を明示的に定義します。

サンプル コード

次のコードスニペットは、画像をロードし、グレースケールに変換して表示する方法を示しています。

<code class="python">import numpy as np
import matplotlib.pyplot as plt
from PIL import Image

fname = 'image.png'
image = Image.open(fname).convert("L")
arr = np.asarray(image)
plt.imshow(arr, cmap='gray', vmin=0, vmax=255)
plt.show()</code>

または、逆グレースケール表現を希望する場合は、cmap 引数を 'gray_r' に変更します。

以上がMatplotlib を使用すると、グレースケール画像がカラーマップとともに表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。