Hi Brad, Thanks for looking into this. Although specific components of the registration framework were designed to work with a generic virtual domain image (such as the similarity metrics), that’s not the case for the framework in it’s entirety. When we wrote the image registration methods, we hard-coded various choices such as the use of the fixed image as the virtual domain image. More work would be required to generalize this.
Nick > On Oct 28, 2016, at 7:46 AM, Lowekamp, Bradley (NIH/NLM/LHC) [C] > <blowek...@mail.nih.gov> wrote: > > Hi! > > I am trying to add the VirtualDomain as an option to the SimpleITK > ImageRegistrationMethod. I have does so here [1]. > > This method for setting the virtual domain follows the > SimpleImageRegistrationTest / Example by setting the VirtualDomain on the > Metric[2]. > > The test created in SimpleITK registers two gaussian blobs with a translation > transform. The fixed image has it’s origin set to (5,100), and the > FixedInitalTransform is set to a translation transform with the same 5,100 > offset. This should map the 0-origined virtual domain to the same index on > the fixed image, to essentially be an identity translation between then > virtual domain and the fixed image when the origin and transform is take into > consideration. This test fails with the following error: > > MeanSquaresImageToImageMetricv4 (0x66f8930): No valid points were found > during metric evaluation. For image metrics, verify that the images overlap > appropriately. For instance, you can align the image centers by translation. > For point-set metrics, verify that the fixed points, once transformed into > the virtual domain space, actually lie within the virtual domain. > > This is an indication the transforms are not being applied as I expect. My > expectation of how the transforms should be applied here [3]. > > Digging into the code, I see that the ImageRegistrationMethod always sets the > VirtualDomain here [4], to the FixedImage. This clobbers the value set > directly to the Metric as in the example/test[2]. Hacking the code to use the > GetCurrentLevelVirtualDomainImage() does get my one case to work. > > Suggestions on how to correct this issue, or a patch are welcomed! > > Thanks, > Brad > > > [1] http://review.source.kitware.com/#/c/21540/2 > <http://review.source.kitware.com/#/c/21540/2> > [2] > https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Registration/RegistrationMethodsv4/test/itkSimpleImageRegistrationTest.cxx#L162 > > <https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Registration/RegistrationMethodsv4/test/itkSimpleImageRegistrationTest.cxx#L162> > [3] > http://insightsoftwareconsortium.github.io/SimpleITK-Notebooks/61_Registration_Introduction_Continued.html#Version-1.1 > > <http://insightsoftwareconsortium.github.io/SimpleITK-Notebooks/61_Registration_Introduction_Continued.html#Version-1.1> > [4] > https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Registration/RegistrationMethodsv4/include/itkImageRegistrationMethodv4.hxx#L409-L415 > > <https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Registration/RegistrationMethodsv4/include/itkImageRegistrationMethodv4.hxx#L409-L415>
_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/insight-developers