[ITK-dev] Scales Estimator
Baohua Wu
baowu99 at gmail.com
Fri May 23 11:07:22 EDT 2014
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
> <blowekamp at mail.nih.gov> 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
>
More information about the Insight-developers
mailing list