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

Matplotlib の imshow() を使用すると、グレースケール画像がカラーで表示されるのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-28 06:18:29180ブラウズ

Why Does My Grayscale Image Appear in Color When Using Matplotlib's imshow()?

Matplotlib でのグレースケール イメージの表示の問題を解決する

Matplotlib の imshow() を使用してグレースケール イメージを表示しようとすると、画像がカラーマップとして表示される状況。画像の上にカラーで描画することが目的の場合、これはイライラすることがあります。

解決策

imshow() 関数がカラーマップを割り当てるため、不一致が発生します。デフォルトでは画像に追加されます。これを修正するには、cmap 引数を明示的に指定し、グレースケールまたは逆グレースケールを表示するためにそれぞれ 'gray' または 'gray_r' に設定します。

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

# Open and convert the image to grayscale
fname = 'image.png'
image = Image.open(fname).convert("L")

# Convert the image to a matrix
arr = np.asarray(image)

# Display the grayscale image
plt.imshow(arr, cmap='gray', vmin=0, vmax=255) # Use 'gray_r' for inverse grayscale
plt.show()</code>

この変更されたコードが示すように、カラーマップを指定すると、画像はグレースケールとして正しくレンダリングされます。これで、画像の上にカラーで描画するという目的のタスクを進めることができます。

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

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