小さなPythonのに続いて、RGB画像の例は、すべての人のためにグレースケール画像Pythoに変換されるもたらすでしょう。それは良い基準値を持っています。私が手助けをしたいです。小さな直列一緒に従うことを、是非、ご覧
質問:
私は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のを信じていないか、または組み込み関数に変換するには、RGBからグレーに何をmatplotlibのを見つけます。これは、その中に業務を処理する一般的なイメージではないでしょうか?
私はそれが5分以内に取り込んだ画像関数imreadを使用することができ、非常に簡単な関数を書きました。これは非常に非効率的ですが、私は内蔵の主要なことを願っています理由です。
セバスチャンは、私の能力を改善したが、私はまだビルトイン見つけることを願っています。
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
回答:
PILの使い方
from PIL import Image
img = Image.open('image.png').convert('LA')
img.save('greyscale.png')
matplotlibの式を使用します
Y' = 0.299 R + 0.587 G + 0.114 B
あなたはこれを行うことができます:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
def rgb2gray(rgb):
return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])
img = mpimg.imread('image.png')
gray = rgb2gray(img)
plt.imshow(gray, cmap = plt.get_cmap('gray'))
plt.show()
最後に、我々は非常に広いPythonの学習リソースの収集をお勧めします、[入力する]をクリック]、ここでのビジネス経験の可能性がある、経験、研究ノートを学ぶ前に、私のコレクションであり、プロジェクトの戦闘への情報に基づいてゼロに沈静化、我々は一番下に、メッセージを残すことができ、前方に置くことを知っていない、我々は進歩一緒に勉強します
。このPythonのRGB画像をグレースケール画像に変換されるオーバーPytho小さなシリーズはすべての内容全体を共有する例です。