Python で RGB 画像をグレースケールに変換する
RGB 画像をグレースケールに変換することは、画像処理の基本的な操作です。 Python では、scikit-image、NumPy、Pillow などの一般的なライブラリを使用してこのタスクを実行するさまざまなアプローチがあります。
Pillow
Pillow は強力な Python ライブラリです。画像加工用。これは、関数 Convert を使用して RGB 画像をグレースケールに変換する便利な方法を提供します。
from PIL import Image img = Image.open('image.png').convert('L')
引数 'L' は、輝度値を維持しながら画像をグレースケールに変換することを指定します。入力イメージにアルファ (透明) チャネルが含まれており、それを保持する必要がある場合は、代わりに「LA」モードを使用します。
NumPy および Matplotlib
別のアプローチは次のとおりです。 NumPy と Matplotlib を使用します。 NumPy は、RGB からグレースケールへの変換の簡単な実装を提供します。
import numpy as np def rgb2gray(rgb): return np.dot(rgb[...,:3], [0.2989, 0.5870, 0.1140])
この関数は、赤、緑、青の値の加重合計を使用して、グレースケールの強度を計算します。 Matplotlib を使用すると、グレースケール画像をロードして表示できます。
import matplotlib.pyplot as plt import matplotlib.image as mpimg img = mpimg.imread('image.png') gray = rgb2gray(img) plt.imshow(gray, cmap=plt.get_cmap('gray'), vmin=0, vmax=1) plt.show()
scikit-image
scikit-image は、画像処理に特化した Python ライブラリです。グレースケール変換用に color.rgb2gray と呼ばれる関数が提供されています。
from skimage import color img = color.rgb2gray(mpimg.imread('image.png'))
追加の実装
Sebastian によって提供される関数もタスクを効果的に実行しますが、動作するのは次のとおりです。個々の RGB チャネルに依存するため、大きな画像を扱う場合は効率が低下する可能性があります。それにもかかわらず、これはグレースケール変換式の簡単な実装を示しています。
以上がPython で RGB 画像をグレースケールに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。