matplotlib
RGB画像を読み込んでグレースケールに変換しようとしています。
matlab では、これを使用します。
img = rgb2gray(imread('image.png'));
matplotlib チュートリアルでは、彼らはそれをカバーしていません。彼らはただ画像を読んだだけです
import matplotlib.image as mpimg
img = mpimg.imread('image.png')
次に、配列をスライスしますが、それは私が理解しているRGBをグレースケールに変換することと同じではありません。
lum_img = img[:,:,0]
numpy または matplotlib に、RGB からグレーに変換する組み込み関数がないとは信じがたいです。これは画像処理ではよくある操作ではないでしょうか。
imread
5分でインポートされた画像で動作する非常に単純な関数を書きました。それは恐ろしく非効率的ですが、それが私が組み込みの専門的な実装を望んでいた理由です。
Sebastian は私の機能を改善してくれましたが、まだ組み込み機能を見つけたいと思っています。
matlab の (NTSC/PAL) 実装:
import numpy as np
def rgb2gray(rgb):
r, g, b = rgb[:,:,0], rgb[:,:,1], rgb[:,:,2]
gray = 0.2989 * r + 0.5870 * g + 0.1140 * b
return gray