Optical Flow

Class: NodeImageOpticalFlow

Node Icon

Registers two images from the same modality, i.e. their intensity distributions need to be similar. Images need to lie in the same coordinate system and be of the same size. Moving input image can be a time series in which case each consecutive image is individually registered against the fixed image. Since optical flow only handles small movements a pyramid approach is implemented for handling large motions.

The user specifies the downsampling steps, i.e. the number of pyramid levels, and a joint downsampling factor. Gaussian smoothing is also applied for each downsampling step as well as median filtering of the displacement between each step. The user can choose to stop the registration at the next highest resolution level, both to save time and possibly to avoid inaccuracies due to noise in the images. Alpha is the factor controlling the smoothness of the registration. A higher alpha value gives a smoother displacement, its square should be set roughly to the noise level in the images. Since the images are not normalized in the process the alpha is with respect to voxelvalues in the images. Output is the resulting images and the displacement fields.

Example workflows



The fixed image.

Type: Image4DFloat, Required, Single


The moving image to be registered. Must be in the same coordinate system and of the same size as the fixed image, i.e. perform a rigid registration first if necessary.

Type: Image4DFloat, Required, Single



The deformation field.

Type: Image4DVector3


The registered moving image.

Type: Image4DFloat


Alpha Number

Alpha value in registration that controls the smoothness.

Iterations Integer

Set number of iterations to run.

Downsampling Steps Integer

Set number of downsampling steps.

Downsampling Factor Number

Set downsampling factor.

Stop at Next Highest Resolution Level Boolean

Set stop at next highest resolution level.


See also

Keywords: deformable, non-rigid