如何在keras CNN模型中调整3D图像的大小



我进行了3D PET扫描(无、128、128、60、1(。我想将其调整为(无,64,64,30,1(。有时我需要它变得更小。我想在keras模型里做这个。我想的是类似tf.image.resize的东西,但适用于3D图像。

我们可以去除3D图像( None , 128 , 128 , 60 , 1)的最后一个维度,使变换张量的形状为( None , 128 , 128 , 60 ),与tf.image所需的形状( height , width , channels )相匹配。(注意:所需形状也可以是( batch_size , height, width, num_channels )(

为此,我们将使用tf.squeeze

import tensorflow as tf
# Some random image
image = tf.random.normal( shape=( 128 , 128 , 60 , 1 ) )
# Remove dimensions of size 1 from `image`
image = tf.squeeze( image )
# Resize the image
resized_image = tf.image.resize( image , size=( 100 , 100 ) )
print( tf.shape( resized_image ) )

输出

tf.Tensor([100 100  60], shape=(3,), dtype=int32)

要恢复大小为1的已删除维度,可以使用tf.expand_dims

resized_image = tf.expand_dims( resized_image , axis=3 )
print( tf.shape( resized_image ))

输出,

tf.Tensor([100 100  60   1], shape=(4,), dtype=int32)

相关内容

  • 没有找到相关文章

最新更新