multimodality non-rigid demon algorithm image registration
This function will perform demon registration which is an type of fast non-rigid fluid like registration between two 2D or 3D images. Registration between different (MRI) modalities is also supported, through a function which transform one image modality so it looks likes the modality of the second image.
The demon registration is described by the paper of Thirion 1998 and extended by Cachier 1999 and He Wang 2005.
Basic algorithm: On each pixel a velocity (movement) is defined with use of the intensity differences and gradient information. This velocity field is smoothed by an Gaussian, and iteratively used to transform the moving image, and register on to the static image. (Easy to understand code example in file basic_demon_example.m)
Instead of using the basic equations for the "demonregistration" function, we have rewritten it to be used by an limit memory BFGS optimizer in an iterative and multi-resolution way, with also support of diffusion regularization. (see also Tom Vercauteren et al. "Non-parametric Diffeomorphic Image..." )
Transforming one modality into the fake modality of the other image is done with use of 2D mutual histograms between regions of both images, and choosing the grey values which have the highest correlation. D. Kroon et al. "MRI Modality Transformation in Demon Registration" (MutualTransform.m)
See the screenshot for an example result.
Usage:
The functions register_images.m and register_volumes.m are easy to use, and will fit most applications.
First compile the c-code : compile_c_files.m.
Notes:
- All the mex-code is multi-threaded and is tested on both Windows and Linux.
- Please leave comments and report bugs
Citar como
Dirk-Jan Kroon (2024). multimodality non-rigid demon algorithm image registration (https://www.mathworks.com/matlabcentral/fileexchange/21451-multimodality-non-rigid-demon-algorithm-image-registration), MATLAB Central File Exchange. Recuperado .
Compatibilidad con la versión de MATLAB
Compatibilidad con las plataformas
Windows macOS LinuxCategorías
- Image Processing and Computer Vision > Image Processing Toolbox > Geometric Transformation and Image Registration >
- Image Processing and Computer Vision > Image Processing Toolbox > 3-D Volumetric Image Processing >
Etiquetas
Agradecimientos
Inspiración para: Implicit Contour Morphing Framework
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Descubra Live Editor
Cree scripts con código, salida y texto formateado en un documento ejecutable.
functions/
functions_affine/
functions_nonrigid/
images/
Versión | Publicado | Notas de la versión | |
---|---|---|---|
1.11.0.0 | Fixed example of sub-function, updated affine mutual information function. |
||
1.10.0.0 | Linux Ubuntu Tested |
||
1.9.0.0 | Fix Gaussian Filter |
||
1.8.0.0 | Fixed major bug in 3D registration by adding lost "uz direction" to error term reported by Vivek. Fixed single cubic interpolation bug. |
||
1.7.0.0 | 3D cubic interpolation bug fixed... |
||
1.6.0.0 | Now Linux multi-threading compatible, added cubic interpolation. |
||
1.5.0.0 | Out of the box registration now available and also multiple modalities support through modality transformation |
||
1.2.0.0 | Add single threaded MEX code |
||
1.1.0.0 | Algorithm rewritten to be used with Matlab Optimizers |
||
1.0.0.0 | Dimension bug fixed, and speed increased. |