Python で RGB イメージをグレースケールに変換する
Python の matplotlib ライブラリを使用して、RGB イメージをグレースケールに変換しようとしています。ライブラリは読み取り機能を提供しますが、グレースケール変換は明示的に含まれていません。
組み込み関数検索
ネイティブのグレースケール変換関数が存在しないという疑問は当然です。 NumPy または matplotlib のいずれかで。実際、このような変換は画像処理における基本的な操作です。
解像度オプション
組み込み関数がないにもかかわらず、推奨されるアプローチがいくつかあります。
枕ライブラリ:
枕、画像操作ライブラリは、シンプルで効率的なソリューションを提供します:
from PIL import Image img = Image.open('image.png').convert('L') img.save('greyscale.png')
Matplotlib 式の実装:
Matplotlib を使用すると、グレースケール変換式を自分で実装できます:
import numpy as np import matplotlib.pyplot as plt import matplotlib.image as mpimg def rgb2gray(rgb): return np.dot(rgb[...,:3], [0.2989, 0.5870, 0.1140]) img = mpimg.imread('image.png') gray = rgb2gray(img) plt.imshow(gray, cmap=plt.get_cmap('gray'), vmin=0, vmax=1) plt.show()
カスタム関数:
元のコードに示されているように、変換を実行する独自の関数を作成することもできます。これは最も効率的ではないかもしれませんが、実行可能なソリューションを提供します。
アルファ チャネルの保持
入力画像にアルファ (透明) チャネルが含まれている場合、Pillow は次のことを許可します。 「LA」モードを使用して保存することもできます。
img = Image.open('image.png').convert('LA')
これらのアプローチは、ユーザーのニーズに基づいて柔軟性と効率性を提供します。特定の要件。
以上がPython で RGB 画像をグレースケールに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。