2017-06-30 6 views
4
%matplotlib inline 
from keras.preprocessing import image 

import matplotlib.pyplot as plt 
import numpy as np 
img = np.random.rand(224,224,3) 
plt.imshow(img) 
plt.show() 

img_path = "image.jpeg" 
img = image.load_img(img_path, target_size=(224, 224)) 
print(type(img)) 

x = image.img_to_array(img) 
print(type(x)) 
print(x.shape) 
plt.imshow(x) 

イメージを印刷する必要があるこのようなコードがいくつかあります。しかし、間違ったチャンネルに画像が表示されます。私はここで何が欠けていますか?ケラスを使用して画像をロードして表示する方法は?

+0

「ただし、間違ったチャンネルの画像が表示されています。」は十分な問題の説明ではありません。どのような結果があり、代わりにそのようにしたいと思いますか?特にここで 'target_size'の役割は何ですか、あなたはカラーチャンネルを無視したいですか? – ImportanceOfBeingErnest

+0

コードを簡略化してください。多くの輸入品はあなたの問題では使用されていません –

答えて

3

これはイメージスケーリングの問題です。 imshow()への入力は、[0-255]の範囲入力を渡している間に、その値が0-1の範囲にあることを前提としています。

plt.imshow(x/255.) 
+0

私はそれがRGB画像にのみ当てはまることを指摘します。デフォルトで 'plt.imshow'は与えられたデータの範囲に自動的にスケーリングされ、そうでなければ' vmin'と 'vmax'パラメータによって制御されます。 –

関連する問題