2016-07-25 5 views
0

TensorFlowの畳み込みレイヤーから画像データを取得しようとしています。 Iがアレイ状に有する:Nは、幅と高さは、チャネルのインデックス画像の大きさとチャネル画像番号であるである4D配列を別の4Dに変換する方法をPythonで切り替えた

data = [N, Width, Height, Channel] 

。その理由は、Nとチャンネルによってサイクルに移動して、画像のそれぞれについて、ECHチャネルのバイトの2次元配列を取得することです

[N, Channel, Width, Height] 

:よう

私は何が必要なのですが、別の4D配列です。

img = Image.fromarray(data[N][Channel], 'L') 
img.save('my.png') 
+0

問題が解決しました。速い答えのためのおかげでみんな! – Verych

答えて

1

は次元の順序を変更するトランスポーズ機能を使用してください。

https://www.tensorflow.org/versions/r0.9/api_docs/python/array_ops.html#transpose

あなたはtensorflowコードでこのような何かをするだろう。

image = tf.transpose(image, perm = [0, 3, 1, 2]) 

permパラメータで、必要な新しい次元の順序を指定します。この場合、チャンネルの寸法(3)を2番目の位置に移動します。

これをテンソルフローモデルに入力する前に行う場合は、np.transposeを同じ方法で使用できます。

1

だけnp.transposeを使用します。

x = np.zeros((32, 10, 10, 3)) # image with 3 channels, size 10x10 
res = np.tranpose(x, (0, 3, 1, 2)) 
print res.shape # prints (32, 3, 10, 10) 
関連する問題