View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003103ITKpublic2006-04-06 05:442011-02-15 16:36
ReporterMarius Staring 
Assigned Tobrian avants 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0003103: NormalizedCorrelationMetric does not check the m_ComputeGradient bool
DescriptionThe NormalizedCorrelationImageToImageMetric does not check the m_ComputeGradient bool when calculating the derivative in both GetDerivative() and GetValueAndDerivative(). It assumes that this bool is true and it also depends on this assumption. However, there exists a function, inherited from the Image, called SetComputeGradient(bool) which enables the user to set it to false. Doing so would result in throwing an exeption.
TagsNo tags attached.
Resolution Date
Sprint Status
Attached Files


Marius Staring (developer)
2006-04-06 05:49

... inherited from Image, called ...

   should be

... inherited from ImageToImageMetric, called ...
Marius Staring (developer)
2006-04-06 06:17

Related to this:

The boolean m_ComputeGradient is standard set to true in the ImageToImageMetric. However, there are some metrics that do not use this gradient image, but forget to set it to false. This will result in a performance penalty, because you are calculating something in Initialize() that you never use. Examples of such metrics are the MeanReciprocalSquareDifferenceImageToImageMetric and classes deriving from the HistogramImageToImageMetric, a notable exeption is the MattesMutualInformationImageToImageMetric.

Maybe it is better to set the default to false and set it to true for metrics that use it. Isn't it dangerous to have the function SetComputeGradient(bool) accesible by the user, because it is more dependend on the specific metric?
Lydia Ng (developer)
2006-05-23 14:00

Lydia to check this
Luis Ibanez (manager)
2007-09-23 10:36

To be done during WA10, or with NAC refactorings.
Luis Ibanez (manager)
2008-04-29 10:42

The metric seems to be doing the right thing here.
This probably should be addressed with more explicit documentation on the use
of the ComputeGradient flag and the GetDerivate() and GetValueAndDerivative() methods.
Hans Johnson (developer)
2010-10-21 13:38

Brian Avants to address this as part of the ITKv4 image registration refactoring.

 Issue History
Date Modified Username Field Change
2007-09-19 12:24 Luis Ibanez Assigned To Lydia Ng => Stephen Aylward
2007-09-23 10:36 Luis Ibanez Note Added: 0009262
2008-04-29 10:42 Luis Ibanez Note Added: 0011583
2010-10-21 13:38 Hans Johnson Note Added: 0022631
2010-10-21 13:39 Hans Johnson Assigned To Stephen Aylward => Luis Ibanez
2010-11-07 02:31 Luis Ibanez Assigned To Luis Ibanez => brian avants

Copyright © 2000 - 2018 MantisBT Team