niftynet.layer.spatial_gradient module

class SpatialGradientLayer(spatial_axis=0, do_cropping=True, name='spatial_gradient')[source]

Bases: niftynet.layer.base_layer.Layer

Computing image spatial gradients.

layer_op(input_tensor)[source]

Computing spatial gradient of input_tensor along self.spatial_axis.

output is equivalent to convolve along spatial_axis with a
kernel: [-1, 0, 1]

This layer assumes the first and the last dimension of the input tensor represent batch and feature channels. Therefore spatial_axis=1 is computing gradient along the third dimension of input tensor, i.e., input_tensor[:, :, y, ...]

Given the input with shape [B, X, Y, Z, C], and spatial_axis=1 the output shape is:

[B, X-2, Y-2, Z-2, C] if do_scropping is True
[B, X, Y-2, Z, C] otherwise

Setting do_cropping to True makes the output tensor has the same dimensionality for different spatial_axis.

Parameters:input_tensor – a batch of images with a shape of [Batch, x[, y, z, ... ], Channel]
Returns:spatial gradients of input_tensor