def warp_backward_nn(self, image): r''' Applies this transformation in the backward direction to the given image using nearest-neighbor interpolation ''' if len(image.shape) == 3: if image.dtype is np.dtype('int32'): warped = np.array( tf.warp_discrete_volumeNN( image, self.backward, self.affine_post_inv, self.affine_pre_inv)) elif image.dtype is np.dtype('float64'): warped = np.array( tf.warp_volumeNN( image, self.backward, self.affine_post_inv, self.affine_pre_inv)) else: if image.dtype is np.dtype('int32'): warped = np.array( tf.warp_discrete_imageNN( image, self.backward, self.affine_post_inv, self.affine_pre_inv)) elif image.dtype is np.dtype('float64'): warped = np.array( tf.warp_imageNN( image, self.backward, self.affine_post_inv, self.affine_pre_inv)) return warped
def warp_forward(self, image): r''' Applies this transformation in the forward direction to the given image using tri-linear interpolation ''' if len(image.shape) == 3: if image.dtype is np.dtype('int32'): warped = np.array( tf.warp_discrete_volumeNN( image, self.forward, self.affine_pre, self.affine_post)) elif image.dtype is np.dtype('float64'): warped = np.array( tf.warp_volume( image, self.forward, self.affine_pre, self.affine_post)) else: if image.dtype is np.dtype('int32'): warped = np.array( tf.warp_discrete_imageNN( image, self.forward, self.affine_pre, self.affine_post)) elif image.dtype is np.dtype('float64'): warped = np.array( tf.warp_image( image, self.forward, self.affine_pre, self.affine_post)) return warped