/// <summary>
 /// Initialize new instance of <seealso cref="GenericGrayscalePipeline"/> which consist of the following sequence
 /// Rescale (Modality) LUT -> VOI LUT -> Output LUT and optionally Invert LUT if specified by grayscale options
 /// </summary>
 /// <param name="options">Grayscale options to use in the pipeline</param>
 public GenericGrayscalePipeline(GrayscaleRenderOptions options)
 {
     _options = options;
     if (_options.RescaleSlope != 1.0 || _options.RescaleIntercept != 0.0) _rescaleLut = new ModalityLUT(_options);
     _voiLut = VOILUT.Create(_options);
     _outputLut = new OutputLUT(_options);
     if (_options.Invert) _invertLut = new InvertLUT(_outputLut.MinimumOutputValue, _outputLut.MaximumOutputValue);
 }
 /// <summary>
 /// Initialize new instance of <seealso cref="GenericGrayscalePipeline"/> which consist of the following sequence
 /// Rescale (Modality) LUT -> VOI LUT -> Output LUT and optionally Invert LUT if specified by grayscale options
 /// </summary>
 /// <param name="options">Grayscale options to use in the pipeline</param>
 public GenericGrayscalePipeline(GrayscaleRenderOptions options)
 {
     if (options.RescaleSlope != 1.0 || options.RescaleIntercept != 0.0)
         _rescaleLut = new ModalityLUT(options);
     _voiLut = VOILUT.Create(options);
     _outputLut = new OutputLUT(options.Monochrome1 ? ColorTable.Monochrome1 : ColorTable.Monochrome2);
     if (options.Invert)
         _invertLut = new InvertLUT(_outputLut.MinimumOutputValue, _outputLut.MaximumOutputValue);
 }
 public GenericGrayscalePipeline(GrayscaleRenderOptions options)
 {
     if (options.RescaleSlope != 1.0 || options.RescaleIntercept != 0.0)
         _rescaleLut = new RescaleLUT(options.BitDepth.MinimumValue, options.BitDepth.MaximumValue,
                                      options.RescaleSlope, options.RescaleIntercept);
     _voiLut = new VOILinearLUT(options.WindowCenter, options.WindowWidth);
     _outputLut = new OutputLUT(options.Monochrome1 ? ColorTable.Monochrome1 : ColorTable.Monochrome2);
     if (options.Invert)
         _invertLut = new InvertLUT(_outputLut.MinimumOutputValue, _outputLut.MaximumOutputValue);
 }