Are there any examples (code) where this filter is used?
I found that the code for inverse deformation field is available in C:\ITK\Modules\Compatibility\Deprecated\include
After building it, I tried executing the file ITKDisplacementFieldTestDriver.exe. it gives a list of options to select . When i select one, it has to wait for me to give input . But it terminates.
@EE18D504_SINDHURA_C : The executable you tried to run is a test driver. To run the actual test, you should type ctest NAME_OF_THE_TEST
. This will run the executable with the appropriate arguments.
Also, there are several filters that allow you to compute the inverse of a displacement fields. You can check which one gives you a better result. One that gave me good results in the past was actually an ITK remote module ( ITKFixedPointInverseDisplacementField) which is available in ITK when setting the CMake variable Module_FixedPointInverseDisplacementField
to ON.
Do you mean I should write ctest itkIterativeInverseFieldImageFilterTest
?Im still getting errors saying that “unable to create process”
What you want to do is ctest -R itkIterativeInverseDisplacementFieldImageFilterTest
(with ITKv5). But it really depents what you want to do. Why are you trying to run this test? Just to verify that it works?
I have deformation field obtained after registration of two images. I want to find inverse deformation field for that using iterative method.
I usually use a fixed point method to invert displacement fields, something like this.
WarpImageFilter Filter = new WarpImageFilter();
Image inverse = new Image(displacementImage.GetSize(), PixelIDValueEnum.swigToEnum(displacementImage.GetPixelIDValue()));
inverse.CopyInformation(displacementImage);
Image mI = -displacementImage;
for (int i = 0; i < iterations; i++)
{
inverse = Filter.Execute(mI, inverse);
}
Its a simple approach but it works surprisingly well in many cases.
As I recall that is essentially what the FixedPointInverseDisplacementFieldImageFilter does, but your version is parallel.
Yes I figured there would be a filter for it.