[Insight-users] Using masks in multiresolution registration

Karthik Krishnan Karthik.Krishnan at kitware.com
Tue Aug 16 14:53:11 EDT 2005



Vicente Grau wrote:

> Thanks very much for the explanation, now I understand it better. As 
> you suggested, I have been looking at the IsInside() values returned 
> by the metrics. It is clear in the code how masks are applied in 
> NormalizedCorrelation or MeanSquares metrics; however, I don't see 
> where the masks are considered in 
> itkmutualinformationimagetoimagemetric.txx (I can only see a call to 
> IsInsideBuffer() ). Are masks implemented for Mutual Information too? 
> I am using ITK 2.0.1.
>
Good point. This metric does not. Please log this as a feature request 
in the bug tracker.
 http://www.itk.org/Bug/

There are 3 flavours of Mutual Information in ITK. (Viola-wells, 
Mattes,  Maes-Collignon)
The Mattes and the MutualInformationHistogramImageToImageMetric do 
support masking.

Thanks
regards
karthik

> Vicente
>
>
> Karthik Krishnan wrote:
>
>>
>>
>> Vicente Grau wrote:
>>
>>> Thanks very much for your answer.
>>> The image resolutions are the same for mask and input image: I have 
>>> copied the values directly from one mha header to the other to make 
>>> sure of that.
>>> I have actually taken the mask object definition / application from 
>>> ImageRegistration12.cxx, but as it didn't work for me, I wondered if 
>>> it had to be used differently in a multiresolution framework. Does 
>>> MultiResolutionImageRegistrationMethod take care of the masking at 
>>> different scales? In this case, should I define a new 
>>> RecursiveMultiResolutionPyramidImageFilter for the mask? 
>>
>>
>>
>> Since the mask is a spatial object, everything is done in physical 
>> space and there should be no need to generate a pyramid. The 
>> MultiResolutionImageRegistrationMethod internally uses a pyramid to 
>> generate Fixed and Moving images at a bunch of resolutions. All these 
>> images correspond to the same physical units, for instance the one at 
>> quarter resolution has its spacing quadrupled.
>>
>> itkMultiResolutionPyramidImageFillter.txx
>> line 404:       outputSpacing[idim] = inputSpacing[idim] * shrinkFactor;
>>
>> When the metric needs to decide whether to evaluate the metric at an 
>> index, it should do something like
>>
>> fixedImage->TransformIndexToPhysicalPoint( index, physicalSpacePoint );
>> if (!this->m_FixedImageMask->IsInside( physicalSpacePoint )) // don't 
>> evaluate here.
>>
>> As you can see everything is done in physical space and you don't 
>> need to shrink the masks.
>>
>> Did you try to dig into the IsInside to see if points ere really 
>> outside ?
>>
>> Thanks
>> karthik
>>
>>> And, how do I pass this pyramid to the 
>>> MultiResolutionImageRegistrationMethod?
>>>
>>> Thanks a lot,
>>>
>>> Vicente
>>>
>>> Karthik Krishnan wrote:
>>>
>>>> On Tue, 2005-08-16 at 11:15 +0100, Vicente Grau wrote:
>>>>  
>>>>
>>>>> I am trying to include masks for the fixed and moving images in a 
>>>>> MultiResolutionImageRegistrationMethod, using Mutual Information. 
>>>>> I have modified the MultiResMIRegistration application to include 
>>>>> the masks, by creating them and adding
>>>>>
>>>>> m_Metric->SetFixedImageMask(m_FixedObjectMask);
>>>>> m_Metric->SetMovingImageMask(m_MovingObjectMask);
>>>>>
>>>>> m_Registration->StartRegistration();
>>>>>
>>>>> however, the mask does not seem to make a difference at all: I get 
>>>>> exactly the same results even when all pixels in the mask are zero.
>>>>> Is it possible to use masks in a multiresolution framework?
>>>>>   
>>>>
>>>>
>>>>
>>>>
>>>> Yes it is. We've used this in the past. Are you sure that the 
>>>> spacing of
>>>> the mask and the image (at full resolution) are the same ? You 
>>>> could try
>>>> to dig into the Metric or your spatial object to see if the IsInside
>>>> function evaluates to false everywhere.
>>>>
>>>>  
>>>>
>>>>> Is this the right way to do it? Are there any examples I can use?
>>>>>   
>>>>
>>>>
>>>>
>>>>
>>>> ImageRegistration12.cxx, although not in the multi-resolution 
>>>> framework,
>>>> but the two aren't very different.
>>>>  
>>>>
>>>>> Thanks very much,
>>>>>
>>>>> Vicente Grau
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Insight-users mailing list
>>>>> Insight-users at itk.org
>>>>> http://www.itk.org/mailman/listinfo/insight-users
>>>>>   
>>>>
>>>>
>>>>
>>>>
>>>>  
>>>>
>>> _______________________________________________
>>> Insight-users mailing list
>>> Insight-users at itk.org
>>> http://www.itk.org/mailman/listinfo/insight-users
>>>
>>
>


More information about the Insight-users mailing list