2017-08-06 26 views
0

Kerasを使用して画像をネットワークに供給したい。私はインターネットから画像をダウンロードし、それらを数が少ない配列に格納しています。 1つの画像をプロットすると、正しく表示されます。 次のステップとして、私は単一のイメージを格納する新しいnumpy配列を作成しています。しかし、そのステップでは画像は黒い画像としてのみ表示されます。なぜこれが起こるのだろうか? KerasとNumpyによる画像変換

import numpy as np 
import urllib.request 
import cv2 
from matplotlib import pyplot as plt 
from keras import backend as K 
%matplotlib inline 

file = "http://farm2.static.flickr.com/1353/1230897342_2bd7c7569f.jpg" 

# Read web file 
images_or = np.ndarray((1,128, 128,3), dtype=np.uint8) 
req = urllib.request.urlopen(file) 
arr = np.asarray(bytearray(req.read()), dtype=np.uint8) 
img = cv2.imdecode(arr,-1) # 'load it as it is' 
images_or[0] = cv2.resize(img,(128,128)) 

# Display image 
plt.imshow(images_or[0]) 
plt.show() 

# Format image 
images_or = images_or.astype(K.floatx()) 
images_or *= 0.96/255 
images_or += 0.02 

# Display image 
plt.imshow(images_or[0]) 
plt.show() 

# Reshape image 
images_or = images_or.reshape(images_or.shape[0], 3, 128, 128) 

# Copy image in another np.array 
A_train_test = np.ndarray((1, 3, 128, 128), dtype=np.uint8) 
A_train_test[0] = images_or[0] 

# Format image 
A_train_test = A_train_test.astype(K.floatx()) 
A_train_test *= 0.96/255 
A_train_test += 0.02 

# Reshape image 
A_train_test = A_train_test.reshape(A_train_test.shape[0], 128, 128, 3) 
image_xxx = A_train_test[0] 

plt.imshow(image_xxx) 
plt.show() 

は事前にどうもありがとうございました、 アンディ私は、コマンドの順序を変更するために必要な

答えて

0

:問題が解決される

# Copy image in another np.array 
A_train_test = np.ndarray((1, 3, 128, 128), dtype=np.uint8) 
A_train_test = A_train_test.astype(K.floatx()) 
A_train_test[0][:] = images_or[0][:] 

は、ここに私のコードです。

関連する問題