将通道最后转换为通道第一图像

Posted

技术标签:

【中文标题】将通道最后转换为通道第一图像【英文标题】:Converting channel last to channel first image 【发布时间】:2018-10-30 08:35:08 【问题描述】:

我有以下尺寸的图像张量

TensorShape([Dimension(1), Dimension(96), Dimension(96), Dimension(3)])

我希望这个张量在通道第一维中

TensorShape([Dimension(1), Dimension(2), Dimension(96), Dimension(96)])

我试过了

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

但它不起作用它与以前一样返回。

既然这是 Facenet 算法的要求,请提出方法。

【问题讨论】:

你不能只是重塑,这将返回无效值。例如。如果您的输入是 [[1,2,3],[4,5,6]],则转置 ([[1,4],[2,5],[3,6]]) 之间存在很大差异和简单的整形([[1,2],[3,4],[5,6]])。但是我怀疑 OP 没有正确使用转置,因为它应该完成这项工作。请提供更完整的代码示例。 Convert between NHWC and NCHW in TensorFlow的可能重复 【参考方案1】:

您可以尝试将张量转换为 NumPy 数组,然后使用 np.rollaxis 并转换回 Tensorflow 张量。

【讨论】:

以上是关于将通道最后转换为通道第一图像的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV:将 3 通道图像转换为 4 通道

如何使用 PIL 将 1 通道图像转换为 3 通道?

二值化之后的图像为单通道,那么还能转换为多通道吗

python库skimage 将针对灰度图像的滤波器用于RGB图像 逐通道滤波;转换为HSV图像滤波

opencv 提取单通道 ,转化灰度图像。

在先通道和最后通道之间更改图像通道顺序的正确方法是啥?