imregdemons vastly different displacement fields

6 views (last 30 days)
I have two images, img01 and img02, and I am trying to generate the displacement fields between them using imregdemons. I had a script that did so perfectly. In this case my reference (fixed) image is img01, and the moving image is img02. I wrote a new script, using the same exact setup, and all of a sudden it isn't working. I know my images are different, and I know that I should be getting bigger displacements in the fields than I am currently getting. What's more, is when I switch it to do imregdemons(img01, img02) (so switching the moving and fixed), the displacements become WAY too big. Doing visual checks doesn't help - it verifies that the function isn't working properly. Any idea as to why switching the moving/fixed images changes everything so much, and anything I can do further to fix it?
  2 Comments
Alex Taylor
Alex Taylor on 28 Sep 2015
The additive demons algorithm used by imregdemons is not guaranteed to be invertable, so the registrations of moving->fixed and fixed->moving can imply different displacement fields.
This is discussed in the following paper:
I don't understand well enough the specifics of your data to comment on why different input images don't register well when a previous set of input images worked well.
Martin Vaklev
Martin Vaklev on 17 Jul 2020
I had similar issues when the displacemnts between the two images get too large. Solved it by adding these parameters: imregdemons(...., 'PyramidLevels',10)

Sign in to comment.

Answers (0)

Categories

Find more on Downloads in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!