功能的尺寸:cv2.cvtColor(IMG,cv2.COLOR_BGR2GRAY)我怎样才能调整cvtColor灰度函数,使得它保持对RGB
如果我输入一个32x32x3图像(3为R/G/B)它会输出一个32x32的图像。但是,我需要它返回一个32x32x1图像,以便我可以将它用于张量流。我如何调整功能?
功能的尺寸:cv2.cvtColor(IMG,cv2.COLOR_BGR2GRAY)我怎样才能调整cvtColor灰度函数,使得它保持对RGB
如果我输入一个32x32x3图像(3为R/G/B)它会输出一个32x32的图像。但是,我需要它返回一个32x32x1图像,以便我可以将它用于张量流。我如何调整功能?
在TensorFlow,您可以使用tf.expand_dims(img, 2)
操作或TensorFlow索引操作符的32×32矩阵转换为32x32x1张量:
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]
谢谢。我正在预处理步骤中进行灰度转换,所以我不想涉及到tf。有没有另外一种方法可以做到这一点? – megashigger
当然,你可以用同样的方式在NumPy中完成它(见更新的答案)。 – mrry
喜, 32x32是1位深度图像。 – Monza