# Demons Registration

Class: NodeRegistrationDemons

The classic demons algorithm will register two images by computing the displacement field which will map a moving image onto a fixed image. It is quite fast, but only works for mono-modal images. For details regarding the itkDemons filter, look at the sitk class and their use example. You can also review the paper by Pennec et al.

## Inputs

#### Fixed

The fixed image.

Type: Image4DFloat, Required, Single

#### Moving

The image to be registered. Should have the same intensity distribution as the fixed, i.e. the same modality. If there are differences in intensity distribution, pre-processing by histogram matching can be helpful in some cases.

Type: Image4DFloat, Required, Single

## Outputs

#### Out

The displacement field which aligns the moving image to the fixed.

Type: Image4DVector3

## Settings

#### Intensity Difference Threshold Number

Set the threshold below which the absolute difference of intensity yields a match. When the intensities match between a moving and fixed image pixel, the update vector (for that iteration) will be the zero vector.

#### Maximum Error Number

Set the desired maximum error of the Guassian kernel approximate.

#### Maximum RMS Error Number

The Root Mean Square of the levelset upon termination.

#### Maximum Kernel Width Integer

Set the desired limits of the Gaussian kernel width.

#### Standard Deviation X Number

Set the Gaussian smoothing standard deviation in X-direction for the displacement field. The values are set with respect to pixel coordinates.

#### Standard Deviation Y Number

Set the Gaussian smoothing standard deviation in Y-direction for the displacement field. The values are set with respect to pixel coordinates.

#### Standard Deviation Z Number

Set the Gaussian smoothing standard deviation in Z-direction for the displacement field. The values are set with respect to pixel coordinates.

#### Update Field Standard Deviation X Number

Set the Gaussian smoothing standard deviation in X-direction for the update field. The values are set with respect to pixel coordinates.

#### Update Field Standard Deviation Y Number

Set the Gaussian smoothing standard deviation in Y-direction for the update field. The values are set with respect to pixel coordinates.

#### Update Field Standard Deviation Z Number

Set the Gaussian smoothing standard deviation in Z-direction for the update field. The values are set with respect to pixel coordinates.

#### Use Image Spacing Boolean

Set the value of UseImageSpacing to true or false respectfully.

#### Use Moving Image Gradient Boolean

Switch between using the fixed image and moving image gradient for computing the displacement field updates.

#### Smooth Displacement Field Boolean

Set whether the displacement field is smoothed (regularized). Smoothing the displacement yields a solution elastic in nature. If Smooth Displacement Field is on, then the displacement field is smoothed with a Gaussian whose standard deviations are specified with Standard Deviation X, Y, Z

#### Smooth Update Field Boolean

Set whether the update field is smoothed (regularized). Smoothing the update field yields a solution viscous in nature. If Smooth Update Field is on, then the update field is smoothed with a Gaussian whose standard deviations are specified with Update Field Standard Deviation X, Y, Z.

#### Number of Iterations Integer

Number of iterations run.