如何调整cvtColor灰度函数,使其保持RGB的尺寸

时间:2016-12-07 06:18:27

标签: opencv computer-vision tensorflow

功能:cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

如果输入32x32x3图像(R / G / B为3),则输出32x32图像。但是,我需要它来返回一个32x32x1图像,以便我可以将它用于tensorflow。如何调整功能?

2 个答案:

答案 0 :(得分:3)

在TensorFlow中,您可以使用tf.expand_dims(img, 2)操作或TensorFlow索引操作符将32x32矩阵转换为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]

答案 1 :(得分:0)

import numpy as np

img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img_expanded = img[np.newaxis,:, :, np.newaxis]

这也有效