2017-01-24 6 views
3

現在、私はConvNetを実行しようとしています。各画像は、後でニューラルネットに供給され、リストとして記憶される。しかし、リストは現時点で3つのfor-loopsを使って作成されています。ありがとうございます。画像の整形中に混乱しました

im = Image.open(os.path.join(p_input_directory, item)) 
pix = im.load() 

image_representation = [] 

# Get image into byte array 
for color in range(0, 3): 
    for x in range(0, 32): 
     for y in range(0, 32): 
      image_representation.append(pix[x, y][color]) 

私はこれが最も素早く効率的な方法ではないと確信しています。上に作成したリストの構造に固執する必要があるので、私はnumpyを使用し、同じ構造になる別の方法を提供することを考えました。

from PIL import Image 
import numpy as np 

image = Image.open(os.path.join(p_input_directory, item)) 
image.load() 
image = np.asarray(image, dtype="uint8") 
image = np.reshape(image, 3072) 
# Sth is missing here... 

しかし、私は上記と同じ構造を取得するためimageを再形成し、連結する方法がわかりません。誰かがそれを助けることができますか?関数に近い外観のため

image = np.asarray(im, dtype="uint8") 
image_representation = image.ravel('F').tolist() 

numpy.ravel documentationに見て -

+0

あなたのソリューションに感謝します。それが私が探していたものでした。 –

答えて

3

一つのアプローチは、本質的に、fortranモード、すなわち逆の方法で平坦化された軸を転置することであろう。

関連する問題