You’re right in that the FIxedInitialTransform is available but it could’ve simply been an oversight on my part. I know I tried to keep the class as general as possible while knowing that actually exercising the virtual domain image as anything other than the fixed image would take more work. I can’t remember exactly. The problem is that I’ve made so many significant changes to that class (e.g., point sets, multiple metrics, accommodating changes to the specialized ImageRegistrationMethods), that I can’t quite remember how it has evolved to its current state.
At first glance, your fix looks fine to me. It passes all the tests and so I’m guessing we should merge and I’ll see if ANTs has any associated hiccups which I’m sure we can easily fix. > On Oct 28, 2016, at 9:01 AM, Lowekamp, Bradley (NIH/NLM/LHC) [C] > <blowek...@mail.nih.gov> wrote: > > Interesting. But the InitialFixedTransform is made available. I am not sure > how that could be used with out the virtual domain. > > After looking at it a bit more it doesn’t look too hard. Here is my attempt > at it: > http://review.source.kitware.com/#/c/21675/1 > <http://review.source.kitware.com/#/c/21675/1> > > Please let know know if this is close to a usable solution. > > Thanks, > Brad > >> On Oct 28, 2016, at 11:48 AM, Nicholas Tustison <ntusti...@gmail.com >> <mailto:ntusti...@gmail.com>> wrote: >> >> 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 <mailto: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