pysteps.motion.vet.morph

pysteps.motion.vet.morph(image, displacement, gradient=False)

Morph image by applying a displacement field (Warping).

The new image is created by selecting for each position the values of the input image at the positions given by the x and y displacements. The routine works in a backward sense. The displacement vectors have to refer to their destination.

For more information in Morphing functions see Section 3 in Beezley and Mandel (2008).

Beezley, J. D., & Mandel, J. (2008). Morphing ensemble Kalman filters. Tellus A, 60(1), 131-140.

The displacement field in x and y directions and the image must have the same dimensions.

The morphing is executed in parallel over x axis.

The value of displaced pixels that fall outside the limits takes the value of the nearest edge. Those pixels are indicated by values greater than 1 in the output mask.

Parameters:
image : ndarray (ndim = 2)

Image to morph

displacement : ndarray (ndim = 3)

Displacement field to be applied (Warping). The first dimension corresponds to the coordinate to displace.

The dimensions are: displacement [ i/x (0) or j/y (1) , i index of pixel, j index of pixel ]

gradient : bool, optional

If True, the gradient of the morphing function is returned.

Returns:
image : ndarray (float64 ,ndim = 2)

Morphed image.

mask : ndarray (int8 ,ndim = 2)

Invalid values mask. Points outside the boundaries are masked. Values greater than 1, indicate masked values.

gradient_values : ndarray (float64 ,ndim = 3), optional

If gradient keyword is True, the gradient of the function is also returned.