Ejemplo n.º 1
0
        /// <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);
        }