MATLAB: How does imregister work

'imregister' 'pyramidalImage Processing Toolboximregisterimregtformpyramidpyramidlevels

Hi, I'm using imregister to compute an affine registration between 2 different volume (3d CBCT scans). I set mean square error as metric and Regular Step Gradient descend as optimizer. I use 3 pyramidal steps, default setup, but i don't know how imregister work in these levels! Does it use different voxel subsets?
I try to find documentation about imregister workflow, but i don't find anything useful and complete.
Someone has others information about imregister and it's pyramid levels?

Best Answer

Marina,
Thank you the feedback. The documentation for imregtform/imregister could be improved to include more information about Pyramiding. I will see to it we take care of that.
In the meantime: The algorithm used by imregtform/imregister build an image pyramid that has N levels. Each pyramid level decreases the resolution by a factor of 2 in each dimension. If you start with a 64x64 image, and have three pyramid levels, then your pyramid will consist of a 64x64 grid, a 32x32 grid, and a 16x16 grid. Optimization starts at the coarsest level of the pyramid (16x16) and continues at this level until either MaximumIterations is reached, or until the optimizer converges. At this point, the optimizer starts again by attempting to refine the current transformation estimate on the next pyramid level (32x32). This process continues until you get back to the original full resolution data that you provided to imregister.
In short, yes, imregister/imregtform internally build a multi-resolution pyramid in memory and solve an optimization problem on each level of the pyramid. Please let me know if there is any aspect of your question that I did not address.
Thanks,
Alex.