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