code: def getParser():
      "Creates and returns the argparse parser object."
      parser = argparse.ArgumentParser(
          description=__description__,
          formatter_class=argparse.RawDescriptionHelpFormatter,
      )
      parser.add_argument(
          "images",
          nargs="+",
          help="The images used for training (in the learning case) or to transform (in the transformation case)",
      )
  
      apply_group = parser.add_argument_group("apply an existing model")
      apply_group.add_argument(
          "--load-model",
          dest="lmodel",
          default=False,
          help="Location of the pickled intensity range model to load. Activated application mode.",
      )
  
      train_group = parser.add_argument_group(
          "train a new model and save and/or apply it"
      )
      train_group.add_argument(
          "--save-model",
          dest="smodel",
          default=False,
          help="Save the trained model under this name as a pickled object (should end in .pkl). Activates training mode.",
      )
      train_group.add_argument(
          "--cutoffp",
          dest="cutoffp",
          type=sequenceOfIntegersGeAscendingStrict,
          default="1,99",
          help="Colon-separated lower and upper cut-off percentile values to exclude intensity outliers during the model training.",
      )
      train_group.add_argument(
          "--landmarkp",
          dest="landmarkp",
          default="L4",
          help="The landmark percentiles, based on which to train the model. Can be L2, L3, L4 or a colon-separated, ordered list of percentiles.",
      )
      train_group.add_argument(
          "--stdspace",
          dest="stdspace",
          default="auto",
          help="Two colon-separated intensity values to roughly define the average intensity space to learn. In most cases should be left set to 'auto'",
      )
  
      shared_group = parser.add_argument_group("shared arguments")
      shared_group.add_argument(
          "--save-images",
          dest="simages",
          default=False,
          help="Save the transformed images under this location. Required for the application mode, optional for the learning mode.",
      )
      shared_group.add_argument(
          "--threshold",
          type=float,
          default=0,
          help="All voxel with an intensity > threshold are considered as foreground. Supply either this or a mask for each image.",
      )
      shared_group.add_argument(
          "--masks",
          nargs="+",
          help="A number of binary foreground mask, one for each image. Alternative to supplying a threshold. Overrides the threshold parameter if supplied.",
      )
      shared_group.add_argument(
          "--ignore",
          dest="ignore",
          action="store_true",
          help="Ignore possible loss of information during the intensity transformation. Should only be used when you know what you are doing.",
      )
  
      parser.add_argument(
          "-v",
          "--verbose",
          dest="verbose",
          action="store_true",
          help="Verbose output",
      )
      parser.add_argument(
          "-d",
          "--debug",
          dest="debug",
          action="store_true",
          help="Display debug information.",
      )
      parser.add_argument(
          "-f",
          "--force",
          dest="force",
          action="store_true",
          help="Overwrite existing files (both model and images)",
      )
      return parser
  
file_path: medpy/bin/medpy_intensity_range_standardization.py
imports: import os
  import pickle
  import argparse
  import logging
  import numpy
  from medpy.core import Logger
  from medpy.core.exceptions import ArgumentError
  from medpy.io import load, save
  from medpy.utilities.argparseu import sequenceOfIntegersGeAscendingStrict
  from medpy.filter import IntensityRangeStandardization
label_desc: Use image node_id 3 for calling a global function with example usage: getParser() and returns: parser