Brad,

I might miss something since there has been a lot of code changes after I worked on it years ago. Here is my understanding after reviewing some code about sampling strategy.

RegistrationParameterScalesEstimator< TMetric >
::SetScalesSamplingStrategy()
{
  if( this->m_VirtualDomainPointSet )
    {
    this->SetSamplingStrategy(VirtualDomainPointSetSampling);
    }
  else if( this->TransformHasLocalSupportForScalesEstimation() )
    {
    this->SetSamplingStrategy(CentralRegionSampling);
    }
  else if (this->CheckGeneralAffineTransform())
    {
    this->SetSamplingStrategy(CornerSampling);
    }
  else
    {
    this->SetSamplingStrategy(RandomSampling);
    this->SetNumberOfRandomSamples( SizeOfSmallDomain );
    }
}

1) Currently SetSamplingStrategy is already protected, but SetScalesSamplingStrategy is public. Should SetScalesSamplingStrategy should be protected as well? Probably yes if it is always called internally.

2) I think FromShiftBased may use CentralRegionSampling. As the code above shows, it depends on the properties of the transform.

3) Your parameters looks right. Please keep in mind that m_CentralRegionRadius for voxel indices, and m_SmallParameterVariation is for a small parameter step in computing transform changes. m_SmallParameterVariation will be normalized in most cases.

Thank you!

Bao

On 5/22/2014 9:08 AM, brian avants wrote:
i believe these questions might best be answered by michael stauffer
and baohua wu, both cc'd.

brian




On Thu, May 22, 2014 at 8:41 AM, Bradley Lowekamp
<[email protected]> wrote:
Nick,

We are working on ITKv4 Registration for SimpleITK. I am adding some methods 
for the Scales Estimators. This is what I currently have:

     Self& SetOptimizerScales( const std::vector<double> &scales);
     Self& SetOptimizerScalesFromJacobian(unsigned int centralRegionRadius = 5 
);
     Self& SetOptimizerScalesFromIndexShift(unsigned int centralRegionRadius = 
5,
                                            double smallParameterVariation =  
0.01 );
     Self& SetOptimizerScalesFromPhysicalShift(unsigned int centralRegionRadius 
= 5,
                                               double smallParameterVariation = 
 0.01 );


I have a couple questions:

1) Despite the some public methods to set the SamplingStrategy, this is really 
set by the implementation of the estimator is not not configurable for any 
estimator? ( Should these methods[1][2] actually be protected?)
2) I can't seem to determine if the FromShiftBased estimators actually use the 
centralRegionRadius, is that actually used?
3) Those parameters look right? missing anything?

Thanks,
Brad

[1] 
http://www.itk.org/Doxygen/html/classitk_1_1RegistrationParameterScalesEstimator.html#a28bda2ed3551af2cacb30b6920180881
[2] 
http://www.itk.org/Doxygen/html/classitk_1_1RegistrationParameterScalesEstimator.html#aa7f519d80e0cabe7d25de1ae6f287cc4
_______________________________________________
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://www.itk.org/mailman/listinfo/insight-developers


_______________________________________________
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://www.itk.org/mailman/listinfo/insight-developers

Reply via email to