How to optimise / understand parameters for image registration?

2 次查看(过去 30 天)
Summary:
1) How do I optimise the settings of the image registration parameters (especially InitialRadius, MaximiumIterations) to work reliably for an example range of datasets?
2) Is it possible to convert the InitialRadius parameter into e.g. millimeters?
3) How do I relate the parameter settings to the (known) range of displacements/rotations over which I want to search?
4) Is there any method I can use to quantify how well the registration worked?
Detailed version:
I am trying to get started with image registration of MRI images (in 3D) with differing contrasts. To do this I am using image registration with the functions imregister and imregtform from the Image Processing Toolbox,using the multimodal settings of Mattes Mutual Information for the metric and the One Plus One Evolutionary optimiser.
The metric and optimiser have several parameters that need to be optimised (InitialRadius, MaximumIterations etc) but it is not easy to work out the best values of these parameters to get reliable results over all my datasets by trial and error. It would be great to have a systematic approach for choosing these values - not just to work for one dataset but for lots of them, and to have some way of evaluating the success other than visual inspection.
The InitialRadius parameter appears to have a physical meaning, but it is not clear how this relates to the image and pixel dimensions. e.g. if the pixel size is 1 mm, the field of view of the image is 400 mm, and I want to start searching for displacements of around 3 mm, I would have thought it should be possible to translate this into a value for the InitialRadius (default is 0.00625 - is this e.g. a fraction of the image size?)
It would also be helpful to understand the range of parameter space which is covered by these algorithms, to see whether it relates sensibly to the range of displacements which are contained in my data. e.g. If I search for translations (3 degrees of freedom: X, Y and Z), and I have an InitialRadius corresponding to 3 mm and a GrowthFactor of 1.05, what range of displacements doe this search over for a given number of MaximumIterations? Is there a ways to work it out approximately?
To summarise, my questions are as follows:
1) Can anyone suggest a good method for optimising the parameters used for image registration (especially InitialRadius, MaximiumIterations) to work reliably for an example range of datasets?
2) Is it possible to convert the InitialRadius parameter into a known physical parameter (e.g. a size in milimeters or a number of pixels for a displacement, or a number of degrees/radians in the case of a rotation)?
3) How do I relate the parameter settings to the (known) range of displacements/rotations over which I want to search?
4) Is there a good (quantitative) way to evaluate how well the registration has worked? This would make it easier to optimise the parameters...

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Geometric Transformation and Image Registration 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by