TubeTK/Documentation/RegisterUsingSlidingGeometries
From KitwarePublic
< TubeTK | Documentation
Jump to navigationJump to search
Revision as of 18:55, 7 January 2015 by Christopher.mullins (talk | contribs) (Created page with " Description: Performs registration between images depicting sliding organs, using an anisotropic diffusive regularization. USAGE: ./RegisterUsingSlidingGeometries...")
Description: Performs registration between images depicting sliding organs, using an anisotropic diffusive regularization.
USAGE:
./RegisterUsingSlidingGeometries [--returnparameterfile <std::string>] [--processinformationaddress <std::string>] [--xml] [--echo] [-c <RAS|LPS>] [-u <SlidingOrgan |SparseSlidingOrgan>] [-a] [--doNotComputeIntensityDistanceTerm] [-r] [-g <double>] [-l <double>] [-z <std::string>] [-x <std::string>] [-v <std::string>] [-o <std::string>] [-d <std::string>] [--stoppingCriterionMask <std::string>] [--backgroundIntensity <double>] [-q <std::string>] [-t <std::string>] [-e <std::string>] [-w <std::string>] [-n <std::string>] [-p <std::string>] [-b <std::string>] [-m <double>] [--maximumTotalEnergyChange <double>] [--stoppingCriterionPeriod <int>] [-k <std::vector<double>>] [-s <double>] [-i <std::vector<int>>] [--] [--version] [-h] <std::string> <std::string>
Where:
--returnparameterfile <std::string> Filename in which to write simple return parameters (int, float, int-vector, etc.) as opposed to bulk return parameters (image, geometry, transform, measurement, table).
--processinformationaddress <std::string> Address of a structure to store process information (progress, abort, etc.). (default: 0)
--xml Produce xml description of command line arguments (default: 0)
--echo Echo the command line arguments (default: 0)
-c <RAS|LPS>, --worldCoordinateSystem <RAS|LPS> The world coordinate system. RAS if the images and model are aligned when visualized in 3D Slicer, LPS if the images and model are aligned when visualized in Paraview. (default: RAS)
-u <SlidingOrgan|SparseSlidingOrgan>, --anisotropicRegistrationType <SlidingOrgan|SparseSlidingOrgan> The type of the anisotropic registration. Each voxel has one normal in the 'sliding organ' type, and three normals in the 'sparse sliding organ' type. 'sparse sliding organ' is under development and not recommended. (default: SlidingOrgan)
-a, --doNotUseAnisotropicRegularization Whether or not to use the anisotropic diffusive regularization (if true, uses the diffusive regularization (i.e. Gaussian smoothing). (default: 0)
--doNotComputeIntensityDistanceTerm Whether or not to compute the intensity distance term. (default: 0)
-r, --doNotPerformRegularization Whether or not to perform motion field regularization. (default: 0)
-g <double>, --gamma <double> Controls the Dirac-shaped function used to calculate the weight value as a function of the distance to the closest organ border point. Must be positive to use a Dirac-shaped function. If gamma = -1, then an exponential decay using lambda will be used instead (default behavior). (default: -1)
-l <double>, --lambda <double> Controls the function used to calculate the weight value as a function of the distance to the closest organ border point. If gamma = -1, then the function is exponential decay. Otherwise, the function is a Dirac-shaped function. Must be positive. (default: 0.1)
-z <std::string>, --outputWeightStructuresImage <std::string> Image specifying the the matrices weighting between plane, tube and point-like structures. This is applicable for sparse sliding organ registration only. This is in the space of the fixed image. Optional: allows you to save the weight image when providing an organ boundary surface. On later registrations, you can provide it instead of an organ boundary, so that it does not need to be recalculated.
-x <std::string>, --outputWeightRegularizationsImage <std::string> Image specifying the weights between the anisotropic diffusive regularization and the diffusive regularization, typically a function of distance to the organ boundary. This is in the space of the fixed image. Optional: allows you to save the weight image when providing an organ boundary surface. On later registrations, you can provide it instead of an organ boundary, so that it does not need to be recalculated.
-v <std::string>, --outputNormalVectorImage <std::string> Image specifying the normal vectors. This is in the space of the fixed image. Optional: allows you to save the normal vector image when providing an organ boundary surface. On later registrations, you can provide it instead of an organ boundary, so that it does not need to be recalculated. Gives the 0th column vector of the normal matrix if using the sparse registration.
-o <std::string>, --outputResampledMovingFileName <std::string> Resampled moving image to fixed image coordinate frame. Optional (specify an output deformation field or an output volume or both).
-d <std::string>, --outputDeformationField <std::string> Deformation field calculated that aligns the fixed and moving image. Maps positions from the fixed coordinate frame to the moving coordinate frame. Optional (specify an output deformation field or an output volume or both).
--stoppingCriterionMask <std::string> Mask specifying which voxels should be used in the stopping criterion. Only pixels with value zero WILL be included in the metric computation and stopping criterion.
--backgroundIntensity <double> Background intensity of the moving image. (default: 0)
-q <std::string>, --initialTransformImage <std::string> Initial transform for aligning the fixed and moving image, specified as a vector image. When applied to the moving image, should make it look closer to the fixed image. Optional. If both an 'initial transform' image and an 'initial transform' transform are given, the 'initial transform' image will be used.
-t <std::string>, --initialTransform <std::string> Initial transform for aligning the fixed and moving image. When applied to the moving image, should make it look closer to the fixed image. Optional. If both an 'initial transform' image and an 'initial transform' transform are given, the 'initial transform' image will be used.
-e <std::string>, --inputWeightStructuresImage <std::string> Image specifying the the matrices weighting between plane, tube and point-like structures. This is applicable for sparse sliding organ registration only. This image should be in the space of the fixed image. Optional: supply a weight image or an organ boundary surface (and a lambda). If both are provided, the organ boundary surface is used.
-w <std::string>, --inputWeightRegularizationsImage <std::string> Image specifying the weights between the anisotropic diffusive regularization and the diffusive regularization, typically a function of distance to the organ boundary. This should be in the space of the fixed image. Optional: supply a weight image or an organ boundary surface (and a lambda). If both are provided, the organ boundary surface is used.
-n <std::string>, --inputNormalVectorImage <std::string> Image specifying the normal vectors. This should be in the space of the fixed image. Optional: supply a normal vector image or an organ boundary surface. If both are provided, the organ boundary surface is used.
-p <std::string>, --tubeSpatialObject <std::string> Filename of the tube spatial object (.tre). This should be in the space of the fixed image. Use for sparse anisotropic diffusion registration only.
-b <std::string>, --organBoundary <std::string> Filename of the organ boundary surface model. This should be in the space of the fixed image.
-m <double>, --maximumRMSError <double> If the RMS change in a registration iteration is less than the maximum RMS error threshold, the registration will be halted. Specify a larger value to halt faster. If using a multiresolution registration, the maximum RMS error condition will be tested at every level (i.e. will run at least one registration on each iteration). If zero, the RMS change stopping criterion is not used. (default: 0)
--maximumTotalEnergyChange <double> If the total energy change summed over the stopping criterion evaluation period is less than the maximum total energy change threshold, then the registration will be halted. Specify a larger value to halt faster. If zero, the total energy change stopping criterion is not used. (default: 0)
--stoppingCriterionPeriod <int> The number of iterations that elapse between evaluations of the total energy change stopping criterion. (default: 50)
-k <std::vector<double>>, --regularizationWeightings <std::vector<double>> Comma separated list of weightings to be applied to the regularization update term. The final update term will be ( itensityDistanceWeighting * intensityUpdateTerm ) + ( RegularizationWeighting * regularizationUpdateTerm ). Increase this value to increase the smoothness of the resulting displacement field. If using a multiresolution registration, you can set a different weighting for each level. If, on any multiresolution level, the current level is past the number of provided weights, the last weight will be used (allowing you to specify only one weight to be used on all levels). Default is 1.0 for each level. (default: 1.0)
-s <double>, --timestep <double> Time step duration. (default: 0.125)
-i <std::vector<int>>, --iterations <std::vector<int>> Comma separated list of iterations. The number of iterations specified dictates the number of levels of the multiresolution registration. The multiresolution shrink factors are halved in all three directions on each of the multiresolution levels. The registration will stop when either the maximum RMS error condition or the number of iterations condition is reached. (default: 20)
--, --ignore_rest Ignores the rest of the labeled arguments following this flag.
--version Displays version information and exits.
-h, --help Displays usage information and exits.
<std::string> (required) Fixed image to which to register.
<std::string> (required) Moving image.
Author(s): Danielle F. Pace (Kitware)
Acknowledgements: This work is part of the TubeTK project at Kitware.