2016-12-07 2 views
0

機能のための寸法を維持するようにどのようにcvtColor階調機能を調整することができる:私は入力32x32x3画像(R/G/Bの3)場合cv2.cvtColor(IMG、cv2.COLOR_BGR2GRAY)それはRGB

32x32の画像を出力します。しかし、代わりに32x32x1の画像を返してテンソルフローに使用できるようにする必要があります。どのように機能を調整するのですか? TensorFlowで

+0

こんにちは、 32x32は1ビット深さの画像です。 – Monza

答えて

2

、あなたはtf.expand_dims(img, 2)操作やTensorFlowのインデックス演算子を使用して32x32x1テンソルに32×32の行列を変換することができます:

img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
img_tensor = tf.constant(img) 
img_expanded = tf.expand_dims(img, 2) # or `img[:, :, tf.newaxis]` 

同じことがnumpyののインデックスを使用して達成することができます。

import numpy as np 
# ... 
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
img_expanded = img[:, :, np.newaxis] 
+0

ありがとうございます。私は前処理ステップでグレースケール変換を行っているので、まだtfを関与させたくありません。 tfなしでそれを行う別の方法はありますか? – megashigger

+0

もちろん、NumPyでも同じように行うことができます(更新された回答を参照)。 – mrry

関連する問題