我进行了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)