using System;
namespace itk.simple.examples
{
{
{
m_Method = m;
}
public override void Execute()
{
Console.WriteLine(String.Format(
" = {0,10:F5}", m_Method.
GetMetricValue()));
}
}
class MultiResolutionIterationUpdate :
Command
{
public MultiResolutionIterationUpdate()
{
}
public override void Execute()
{
Console.WriteLine("--------- Resolution Changing ---------");
}
}
class ImageRegistrationMethodBSpline2
{
static void Main(string[] args)
{
if (args.Length < 3)
{
Console.WriteLine("Usage: {0} <fixedImageFile> <movingImageFile> <outputTransformFile>",
System.AppDomain.CurrentDomain.FriendlyName);
return;
}
VectorUInt32 transformDomainMeshSize = new VectorUInt32();
{
transformDomainMeshSize.Add(10);
}
Transform tx = SimpleITK.BSplineTransformInitializer(fixedImage, transformDomainMeshSize);
Console.WriteLine("Initial Parameters:");
Console.Write(String.Format("[{0:F5}", initialParams[0]));
for (int i = 1; i < initialParams.Count; i++)
{
Console.Write(String.Format(", {0:F5}", initialParams[i]));
}
Console.WriteLine("]");
double learningRate = 5.0;
uint numberOfIterations = 100;
double convergenceMinimumValue = 1e-4;
uint convergenceWindowSize = 5;
VectorUInt32 shrinkFactors = new VectorUInt32();
shrinkFactors.Add(6); shrinkFactors.Add(2); shrinkFactors.Add(1);
VectorDouble smoothingSigmas = new VectorDouble();
smoothingSigmas.Add(6); smoothingSigmas.Add(2); smoothingSigmas.Add(1);
IterationUpdate cmd1 = new IterationUpdate(R);
MultiResolutionIterationUpdate cmd2 = new MultiResolutionIterationUpdate();
Console.WriteLine("-------");
Console.WriteLine(String.Format(
" Metric value: {0}", R.
GetMetricValue()));
if (Environment.GetEnvironmentVariable("SITK_NOSHOW") == null)
{
Image cimg = SimpleITK.Compose(simg1, simg2, SimpleITK.Divide(SimpleITK.Add(simg1, simg2), 2.0));
SimpleITK.Show(cimg, "ImageRegistrationMethodBSpline2 Composition");
}
}
}
}
An implementation of the Command design pattern for callback.
An interface method to the modular ITKv4 registration framework.
void SetInterpolator(InterpolatorEnum Interpolator)
Set and get the interpolator to use.
Transform Execute(const Image &fixed, const Image &moving)
Optimize the configured registration problem.
std::vector< double > GetOptimizerPosition() const
void SetOptimizerAsGradientDescentLineSearch(double learningRate, unsigned int numberOfIterations, double convergenceMinimumValue=1e-6, unsigned int convergenceWindowSize=10, double lineSearchLowerLimit=0, double lineSearchUpperLimit=5.0, double lineSearchEpsilon=0.01, unsigned int lineSearchMaximumIterations=20, EstimateLearningRateType estimateLearningRate=Once, double maximumStepSizeInPhysicalUnits=0.0)
Gradient descent optimizer with a golden section line search.
void SetMetricAsMattesMutualInformation(unsigned int numberOfHistogramBins=50)
Use the mutual information between two images to be registered using the method of Mattes et al.
void SetShrinkFactorsPerLevel(const std::vector< unsigned int > &shrinkFactors)
Set the isotropic shrink factors for each level.
std::string GetOptimizerStopConditionDescription() const
void SetSmoothingSigmasPerLevel(const std::vector< double > &smoothingSigmas)
Set the sigmas of Gaussian used for smoothing.
void SetOptimizerScalesFromPhysicalShift(unsigned int centralRegionRadius=5, double smallParameterVariation=0.01)
Estimating scales of transform parameters a step sizes, from the maximum voxel shift in physical spac...
unsigned int GetOptimizerIteration() const
double GetMetricValue() const
void SetInitialTransform(const Transform &transform)
Set the initial transform and parameters to optimize.
The Image class for SimpleITK.
unsigned int GetDimension() const
virtual int AddCommand(itk::simple::EventEnum event, itk::simple::Command &cmd)
Add a Command Object to observer the event.
Resample an image via a coordinate transform.
Image Execute(const Image &image1)
void SetInterpolator(InterpolatorEnum Interpolator)
void SetTransform(Transform Transform)
void SetReferenceImage(const Image &refImage)
void SetDefaultPixelValue(double DefaultPixelValue)
EventEnum
Events which can be observed from ProcessObject.
PixelIDValueEnum
Enumerated values of pixelIDs.