2017-12-20 50 views
0

matplotlibを使用して画像を表示するにはどうすればよいですか?スプリット機能で変換した画像を図でどのように表示できますか?

from PIL import Image 
import matplotlib.pyplot as plt 

img = Image.open('lena.png') 
colors = img.split() 
RED = colors[0] 

私は元の画像とヒストグラムを示しましたが、赤い画像は表示できませんでした。

plt.subplot(2,2,2) 
plt.imshow(RED) 
plt.show() 

私は、元の画像とヒストグラムを示したが、私は最後の行に赤いpicture.Errorメッセージを表示することができませんでした:

AttributeError: 'numpy.ndarray' object has no attribute 'mask' 

答えて

0

あなたがnumpyの配列にPILの画像を変換する必要があります。

import numpy as np 
# ... 
plt.imshow(np.array(RED)) 
+0

画像)(nP.Array(RED)で作成した【選択画像も私が言いたいの緑tone.whatがされ支配をRED.showを使用して作成したとして、それは同じではありません:https://でimgur .com/a/hc9M3 私の悪い英語を申し訳ありません。あなたのコメントのために 感謝します。 – uyusuk

+0

赤いチャネルはグレースケール画像です。表示したいカラーマップを選択することができます。デフォルトのものが気に入らない場合は、たとえばを使用します。 'plt.imshow(np.array(RED)、cmap =" grey ")'または 'plt.imshow(np.array(RED)、cmap =" Reds_r ")'となります。 – ImportanceOfBeingErnest

+0

ご理解いただきありがとうございます。 – uyusuk

関連する問題