Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 如何调整cvtColor grayscale函数,使其保持RGB的尺寸_Opencv_Computer Vision_Tensorflow - Fatal编程技术网

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

Opencv 如何调整cvtColor grayscale函数,使其保持RGB的尺寸,opencv,computer-vision,tensorflow,Opencv,Computer Vision,Tensorflow,功能:cv2.CVT颜色(img,cv2.COLOR\U BGR2GRAY) 如果我输入一个32x32x3图像(3代表R/G/B),它将输出一个32x32图像。但是,我需要它返回一个32x32x1图像,这样我就可以将它用于tensorflow。如何调整函数?在TensorFlow中,可以使用操作或TensorFlow索引运算符将32x32矩阵转换为32x32x1张量: img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) img_tensor = tf.cons

功能:cv2.CVT颜色(img,cv2.COLOR\U BGR2GRAY)


如果我输入一个32x32x3图像(3代表R/G/B),它将输出一个32x32图像。但是,我需要它返回一个32x32x1图像,这样我就可以将它用于tensorflow。如何调整函数?

在TensorFlow中,可以使用操作或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]

在TensorFlow中,可以使用操作或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]
这同样有效


这也可以

您好,32x32是1位深度图像。您好,32x32是1位深度图像。谢谢。我在预处理步骤中进行灰度转换,所以我还不想涉及tf。没有tf还有其他方法吗?当然,你也可以用同样的方法在NumPy中完成(见更新的答案)。谢谢。我在预处理步骤中进行灰度转换,所以我还不想涉及tf。在没有tf的情况下还有其他方法吗?当然,在NumPy中也可以用同样的方法完成(见更新的答案)。