00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __freConstParameters_h
00023 #define __freConstParameters_h
00024
00025 namespace FREE
00026 {
00027
00028 #define DeclareParameterMacro( ParamID ) \
00029 static const char* const cParam_##ParamID;\
00030 static const char* const cParamDsc_##ParamID;\
00031
00032 #define DefineParameterMacro( Class, ParamID, sParam, sParamInfo ) \
00033 const char* const Class :: cParam_##ParamID = sParam; \
00034 const char* const Class :: cParamDsc_##ParamID = sParamInfo;
00035
00036 #define DefineParameterTemplateMacro( Class, Template, ParamID, sParam, sParamInfo ) \
00037 template < Template >\
00038 const char* const Class :: cParam_##ParamID = sParam; \
00039 template < Template >\
00040 const char* const Class :: cParamDsc_##ParamID = sParamInfo;
00041
00042 #define DeclareMediaIDMacro( MediaID ) \
00043 static const char* const MediaID_##MediaID;\
00044 static const char* const MediaIDDsc_##MediaID;\
00045
00046 #define DefineMediaIDMacro( Class, MediaID, sID, sMediaInfo ) \
00047 const char* const Class :: MediaID_##MediaID = sID; \
00048 const char* const Class :: MediaIDDsc_##MediaID = sMediaInfo;
00049
00050
00051
00052 #define ParameterMacro( ParamID, sParam, sParamInfo ) \
00053 const char* const cParam_##ParamID = sParam; \
00054 const char* const cParamDsc_##ParamID = sParamInfo
00055
00058 ParameterMacro(InitialTransformValues,"InitialTransformValues","Initial values of the transformation. Meaning depends on he transformation.");
00059 ParameterMacro(CurrentTransformValues,"CurrentTransformValues","Curent values of the transformation. After registration, there are the final parameters. Directly before the registration the parameters used to initialize the transformation.");
00060 ParameterMacro(TransformScale, "TransformScales", "Depending on the Transformation.");
00061 ParameterMacro(MovingReferencePoints, "MovingReferencePoints","Reference points in the moving image. In special case lower levels are further points. Same layers in MovingReferencePoints and FixedReferencePoints are point couples.\n");
00062 ParameterMacro(FixedReferencePoints, "FixedReferencePoints","Reference points in the fixed image. In special case lower levels are further points. Same layers in MovingReferencePoints and FixedReferencePoints are point couples.\n");
00063 ParameterMacro(InitialisationMethod, "InitialisationMethod","Defines how the Transform will be initialized by initial transform values (itv) or estimation of the parameters. The kind of estimation depends on the transform and its setup.\n\n0: All initial parameters will be estimated");
00064
00065 ParameterMacro(ActualizeReferences, "ActualizeReferences","The section allows to actualize his references within the registration process, to avoid outdating of the setup be preceding transformations.\nThe actualizing will only have an effect, if the Registrator has activated ComputeTransformation.");
00066 ParameterMacro(Iterations, "NrOfIterations","Maximums number of iterations the optimizer should do.");
00067 ParameterMacro(StdDev, "StandardDeviation", "Standard deviation");
00068 ParameterMacro(HistoMatch, "HistogramMatchOn","Use a histogram match on the moving image, when using same modality, to gain better results.");
00069 ParameterMacro(HistoLevels, "HistogramLevels","Levels/Bins of the histogram.");
00070 ParameterMacro(HistoMatchPoints, "HistogramPoints","Number of quantile values to be matched.");
00071 ParameterMacro(HistoThreshold, "HistogramThresholdOn","Activates background exclusion for the histogram matching.");
00072
00073 ParameterMacro(SplinOrder, "SplineOrder","Order of the BSpline used. (0: almost nearest neighbor; 1: almost linear)");
00074
00075 ParameterMacro(MaxStepLength, "maxStepLength","Maximal size of the optimizer steps.");
00076 ParameterMacro(MinStepLength, "minStepLength","Minimal size of the optimizer steps.");
00077 ParameterMacro(GradMagTolerance, "GradMagTolerance","Tolerance of gradient magnitude.");
00078 ParameterMacro(DynamicLevelStepLength, "DynamicLevelStepLength","Flag indicates if the last step length of the preceding level should be the max step length of the level.\n In the first level the maxStepLength value will always be used.");
00079 ParameterMacro(LearningRate, "LearningRate","Learning Rate of the optimizer.");
00080
00081 ParameterMacro(Lambda, "Lambda","Adjust the capture radius of the metric.\nLow lambda means greater capture radius.");
00082 ParameterMacro(ValueTolerance, "ValueTolerance","TODO");
00083 ParameterMacro(EpsilonFunction, "EpsilonFunction","TODO");
00084
00086 ParameterMacro(ROIOrigin, "ROIOrigins","Origin of the ROI in the moving and fixed image (n is the dimension of the pipe).");
00087 ParameterMacro(ROISize, "ROISize","Size of the ROI.");
00088 ParameterMacro(ROIMaskFile, "MaskFile", "Specifies the path of the mask file to use with the ROI. If ROIType forces to use a mask and this value is empty, it will cause the registrator to make a callback.");
00089 ParameterMacro(ROIMaskFileFeedback, "MaskFileFeedback", "Determines if the controller triggers an event before loading the mask file, so it can be checked and respecified.\n0: No event.\n1: Trigger event before loading mask.");
00090
00091 ParameterMacro(ROI_M_Origin, "ROIOrigins_Moving","Origin of the ROI in the moving and fixed image.");
00092 ParameterMacro(ROI_M_Size, "ROISize_Moving","Size of the ROI for the moving Image of an image couple.");
00093 ParameterMacro(ROI_M_MaskFile, "MaskFile_Moving", "Specifies the path of the mask file to use with the ROI. If ROIType forces to use a mask and this value is empty, it will cause the registrator to make a callback.");
00094 ParameterMacro(ROI_M_MaskFileFeedback, "MaskFileFeedback_Moving", "Determines if the controller triggers an event before loading the mask file, so it can be checked and respecified.\n0: No event.\n1: Trigger event before loading mask.");
00095
00096 ParameterMacro(ROI_F_Origin, "ROIOrigins_Fixed","Origin of the ROI for the fixed image of an image couple.");
00097 ParameterMacro(ROI_F_Size, "ROISize_Fixed","Size of the ROI for the moving Image of an image couple.");
00098 ParameterMacro(ROI_F_MaskFile, "MaskFile_Fixed", "Specifies the path of the mask file to use with the ROI. If ROIType forces to use a mask and this value is empty, it will cause the registrator to make a callback.");
00099 ParameterMacro(ROI_F_MaskFileFeedback, "MaskFileFeedback_Fixed", "Determines if the controller triggers an event before loading the mask file, so it can be checked and respecified.\n0: No event.\n1: Trigger event before loading mask.");
00100
00101
00102 ParameterMacro(MetricMinimize, "Minimize","Determines the the direction of the best metric value.\nThis Value is not meant to be configured by user, it stores predefined information. The registration process will always use the default value, even if changed in the setup file.");
00103
00105 ParameterMacro(FEMSetup, "SetupFile","File with the FEM setup information. (Full filename) If a setup file is given, all parameters for FEM are taken from the file, changing it in the fre-file has no effect.");
00106 ParameterMacro(FEMRegLevels, "ResolutionLevels","Number of resolution levels for the registration.\n1 means single-res registration. In every level the resolution will be doubled, until the orginal resolution is reached.");
00107 ParameterMacro(FEMPPE, "PixelsPerElement","Number of pixels per finite element.");
00108 ParameterMacro(FEMElasticity, "Elasticity","Elasticity of the elemental connections");
00109 ParameterMacro(FEMDensity, "Density","Density of the model");
00110 ParameterMacro(FEMEnergyScale, "ImageEnergyScale","Image similarity energy weight (gamma) - sets gradient step size");
00111 ParameterMacro(FEMNrIntPoints, "NrOfIntegrationPoints","This determines the number of integration points to use at each resolution. These integration points are used to generate the force.\nThe actual number used will be NrOfIntegrationPoints^d, where d is the number of parameters in the elements local domain.");
00112 ParameterMacro(FEMWidthOfMetric, "WidthOfMetricRegion","The metric region allows one to compute the derivative (force) of the similarity metric using a region of size [i,i] in 2D [i,i,i] in 3D, where i is WidthOfMetricRegion.");
00113 ParameterMacro(FEMAlpha, "Alpha","Set alpha for the trapezoidal rule.");
00114 ParameterMacro(FEMDescentDirection, "DescentDirectionMinimize","FEM tries to maximize energy (1) or minimize it (0).");
00115 ParameterMacro(FEMDoLineSearch, "DoLineSearch","LineSearch finds the minimum energy between the current and next solution by linear search.\n(0=never, 1=always, 2=if needed)");
00116 ParameterMacro(FEMTimeStep, "TimeStep","Setting the time step.");
00117 ParameterMacro(FEMEnergyReduction, "EnergyReduction","Sets the energy below which we decide the solution has converged.");
00118 ParameterMacro(FEMLandmarkType, "LandmarkType","Defines if the fem should use landmarks and from which source.\n0: No Landmarks\n1: Use the file specified in the parameter LandmarkFile.\n2: Use the landmarks specified by the parameter Landmarks.");
00119 ParameterMacro(FEMLandmarks, "Landmarks","Landmarks used for the fem. Every level is one couple of landmarks for the moving and fixed image.\n\n2D:\n1..2: x/y moving image\n3..4: x/y fixed image\n\n3D:\n1..3: x/y/z moving image\n4..6: x/y/z fixed image");
00120 ParameterMacro(FEMLandmarkFile, "LandmarkFile","Uses a given landmark file for the registration.(Full filename with path)");
00121 ParameterMacro(FEMMetric, "Metric","Metric type that should be used for the registration:\n0: Mean Square\n1: Normalized Correlation\n2: Pattern Intensity\n3: Mutual Information; StdDev = 0.4; Sample# = 0.5*( WidthOfMetric ^Image dimension)\n4: Mattes MI; bins = 10; Sample# = see 3.\n5: Demon based Metric");
00122 ParameterMacro(FEMScaleGradient, "ScaleGradient","The scale gradient of the metric");
00123 ParameterMacro(FEMRegridding, "EmployRegridding","Sets the use of multi-resolution strategy. 1 = true, 0 = false");
00124
00125 ParameterMacro(MRRegLevel, "ResolutionLevels","The level of the image pyramid.");
00126 ParameterMacro(MRRegUseSchedule, "UseSchedule","If schedule is used, the pixel size for every level is get by the resolution schedule (ResolutionSchedule), otherwise the starting pixel size is 2^(levels-1) and will be halfed with every following level.");
00127 ParameterMacro(MRRegResolutionSchedule, "ResolutionSchedule","The resolution schedule defines the pixel size in every dimension, for every level. The schedule will only be used, if UseSchedule is true.");
00128
00129 ParameterMacro(HistSize, "HistogramSize","Number of bins in the 2D histogram.\n1: bins for the fixed image\n2: bins for the moving image");
00130 ParameterMacro(HistPadValue, "HistogramPaddingValue","Pixel value that should be ignored for histogram calculation.\n-1 (default) indicates to use every pixel value.");
00131 ParameterMacro(HistDerivativeStep, "DerivativeStepLength","The 'length' of transform parameter changes to estimate the derivates for the actual parameter set.");
00132 ParameterMacro(HistDerivativeScales, "DerivativeStepLengthScales","This value is similar to the scale value of transforms. It modifies the step length (length/scale) for every parameter in the process of derivates computation.\n If it is set to true the transform scales will be used, otherwise all parameters are treated equal.");
00133 ParameterMacro(UpperBoundIncreaseFactor, "UpperBoundIncreaseFactor","");
00134
00135 }
00136 #endif