/// <summary> /// Add a parameter to the parameter map. /// </summary> /// <param name="parameterName">parameter key</param> /// <param name="value">parameter value</param> protected void AddParameter(string parameterName, sitk.VectorString value) { if (parameterMap.ContainsKey(parameterName)) { parameterMap.Remove(parameterName); } parameterMap.Add(parameterName, value); }
/// <summary> /// Change or add a parameter (if param does not exist) to parameter map. /// </summary> /// <param name="paramMap">reference to parameter map</param> /// <param name="key">parameter key</param> /// <param name="value">values as a vector of strings</param> public static void ChangeOrAddParamIfNotExist(ref sitk.ParameterMap paramMap, string key, sitk.VectorString value) { if (paramMap.ContainsKey(key)) { paramMap[key] = value; } else { paramMap.Add(key, value); } }
/// <summary> /// Get a default parameter map for a specific registration type. /// </summary> /// <param name="type">registration type</param> /// <returns>sitk parameter map</returns> public static sitk.ParameterMap GetDefaultParameterMap(RegistrationDefaultParameters type) { if ((int)type < 4) { // rigid registration types if (type == RegistrationDefaultParameters.similarity) { sitk.ParameterMap parameterMap = GetDefaultRigidParameterMap(RegistrationDefaultParameters.translation); parameterMap["Transform"][0] = "SimilarityTransform"; return(parameterMap); } else { return(GetDefaultRigidParameterMap(type)); } } else { // non rigid registration types if (type == RegistrationDefaultParameters.spline || type == RegistrationDefaultParameters.bspline || type == RegistrationDefaultParameters.nonrigid) { return(GetDefaultNonRigidParameterMap()); } else { sitk.ParameterMap parameterMap = GetDefaultNonRigidParameterMap(); if (type == RegistrationDefaultParameters.diffusion) { parameterMap["Transform"][0] = "BSplineTransformWithDiffusion"; // default parameters for bspline diffusion registration parameterMap.Add("FinalGridSpacing", GetVectorString("8.0", "8.0", "8.0")); parameterMap.Add("UpsampleGridOption", GetVectorString("true")); parameterMap.Add("FilterPattern", GetVectorString("1")); parameterMap.Add("DiffusionEachNIterations", GetVectorString("1")); parameterMap.Add("AfterIterations", GetVectorString("50", "100")); parameterMap.Add("HowManyIterations", GetVectorString("1", "5", "10")); parameterMap.Add("NumberOfDiffusionIterations", GetVectorString("1")); parameterMap.Add("Radius", GetVectorString("1")); parameterMap.Add("ThresholdBool", GetVectorString("true")); parameterMap.Add("ThresholdHU", GetVectorString("150")); parameterMap.Add("GrayValueImageAlsoBasedOnFixedImage", GetVectorString("true")); //parameterMap.Add("UseFixedSegmentation", GetVectorString("false")); //parameterMap.Add("FixedSegmentationFileName", GetVectorString("filename")); parameterMap.Add("UseMovingSegmentation", GetVectorString("false")); parameterMap.Add("MovingSegmentationFileName", GetVectorString("filename")); return(parameterMap); } else if (type == RegistrationDefaultParameters.recursive) { parameterMap["Transform"][0] = "RecursiveBSplineTransform"; parameterMap.Add("PassiveEdgeWidth", GetVectorString("0")); return(parameterMap); } else { return(parameterMap); } } } }
/// <summary> /// Create default non rigid parameter map. /// </summary> /// <returns>default paramerets</returns> private static sitk.ParameterMap GetDefaultNonRigidParameterMap() { sitk.ParameterMap paramMap = new sitk.ParameterMap(); paramMap.Add("FixedInternalImagePixelType", GetVectorString("float")); paramMap.Add("MovingInternalImagePixelType", GetVectorString("float")); paramMap.Add("FixedImageDimension", GetVectorString("2")); paramMap.Add("MovingImageDimension", GetVectorString("2")); paramMap.Add("UseDirectionCosines", GetVectorString("true")); paramMap.Add("Registration", GetVectorString("MultiResolutionRegistration")); paramMap.Add("Interpolator", GetVectorString("BSplineInterpolator")); paramMap.Add("ResampleInterpolator", GetVectorString("FinalBSplineInterpolator")); paramMap.Add("Resampler", GetVectorString("DefaultResampler")); paramMap.Add("FixedImagePyramid", GetVectorString("FixedRecursiveImagePyramid")); paramMap.Add("MovingImagePyramid", GetVectorString("MovingRecursiveImagePyramid")); paramMap.Add("Optimizer", GetVectorString("AdaptiveStochasticGradientDescent")); paramMap.Add("Transform", GetVectorString("BSplineTransform")); paramMap.Add("Metric", GetVectorString("AdvancedMeanSquares")); paramMap.Add("FinalGridSpacingInPhysicalUnits", GetVectorString("16")); paramMap.Add("GridSpacingSchedule", GetVectorString("5.0", "5.0", "4.0", "4.0", "3.0", "3.0", "2.0", "2.0", "1.0", "1.0")); paramMap.Add("HowToCombineTransforms", GetVectorString("Compose")); paramMap.Add("ErodeMask", GetVectorString("false")); paramMap.Add("NumberOfResolutions", GetVectorString("5")); paramMap.Add("MaximumNumberOfIterations", GetVectorString("1024")); paramMap.Add("NumberOfSpatialSamples", GetVectorString("4096")); paramMap.Add("NumberOfSamplesForExactGradient", GetVectorString("4096")); paramMap.Add("NewSamplesEveryIteration", GetVectorString("true")); paramMap.Add("ImageSampler", GetVectorString("Random")); paramMap.Add("BSplineInterpolationOrder", GetVectorString("1")); paramMap.Add("FinalBSplineInterpolationOrder", GetVectorString("3")); paramMap.Add("DefaultPixelValue", GetVectorString("255.0")); paramMap.Add("WriteResultImage", GetVectorString("true")); paramMap.Add("ResultImagePixelType", GetVectorString("short")); paramMap.Add("ResultImageFormat", GetVectorString("mhd")); return(paramMap); }