ITK  5.2.0
Insight Toolkit
itkMRIBiasFieldCorrectionFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright NumFOCUS
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef itkMRIBiasFieldCorrectionFilter_h
19 #define itkMRIBiasFieldCorrectionFilter_h
20 
21 #include <ctime>
22 
23 #include "itkImageToImageFilter.h"
24 #include "itkArray2D.h"
25 #include "itkMRASlabIdentifier.h"
30 #include "itkImageRegionIterator.h"
31 
32 namespace itk
33 {
47 template <typename TImage, typename TImageMask, typename TBiasField>
48 class ITK_TEMPLATE_EXPORT MRIBiasEnergyFunction : public SingleValuedCostFunction
49 {
50 public:
51  ITK_DISALLOW_COPY_AND_MOVE(MRIBiasEnergyFunction);
52 
58 
61 
63  itkNewMacro(Self);
64 
66  using ImageType = TImage;
67  using ImagePointer = typename ImageType::Pointer;
68  using ImageElementType = typename ImageType::PixelType;
71  using MaskType = TImageMask;
72  using MaskPointer = typename MaskType::Pointer;
73  using MaskElementType = typename MaskType::PixelType;
74 
76  using BiasFieldType = TBiasField;
77 
80  using ParametersType = typename Superclass::ParametersType;
81 
83  using DerivativeType = Superclass::DerivativeType;
84 
86  using MeasureType = Superclass::MeasureType;
87 
88  static constexpr unsigned int SpaceDimension = 3;
89 
91  using InternalEnergyFunction = CompositeValleyFunction;
92 
94  using SamplingFactorType = unsigned int[SpaceDimension];
95 
97  itkSetObjectMacro(Image, ImageType);
98 
100  itkSetObjectMacro(Mask, MaskType);
101 
103  itkSetMacro(Region, ImageRegionType);
104 
106  void
108  {
109  m_BiasField = bias;
110  }
111 
114  void
116  {
117  for (unsigned int i = 0; i < SpaceDimension; i++)
118  {
119  m_SamplingFactor[i] = factor[i];
120  }
121  }
123 
126  double
127  GetEnergy0(double diff)
128  {
129  return (*m_InternalEnergyFunction)(diff);
130  }
131 
134  MeasureType
135  GetValue(const ParametersType & parameters) const override;
136 
139  void
140  GetDerivative(const ParametersType & itkNotUsed(parameters), DerivativeType & itkNotUsed(derivative)) const override
141  {}
142 
147  void
148  InitializeDistributions(Array<double> classMeans, Array<double> classSigmas);
149 
150  unsigned int
151  GetNumberOfParameters() const override;
152 
153 protected:
156 
158  ~MRIBiasEnergyFunction() override;
159 
160 private:
163 
166 
169 
172 
175 
178 }; // end of class
179 
231 template <typename TInputImage, typename TOutputImage, typename TMaskImage>
232 class ITK_TEMPLATE_EXPORT MRIBiasFieldCorrectionFilter : public ImageToImageFilter<TInputImage, TOutputImage>
233 {
234 public:
235  ITK_DISALLOW_COPY_AND_MOVE(MRIBiasFieldCorrectionFilter);
237 
243 
245  itkNewMacro(Self);
246 
249 
251  static constexpr unsigned int ImageDimension = TOutputImage::ImageDimension;
252 
254  using OutputImageType = TOutputImage;
255  using OutputImagePointer = typename TOutputImage::Pointer;
257  using OutputImagePixelType = typename TOutputImage::PixelType;
260 
261  using InputImageType = TInputImage;
262  using InputImagePointer = typename TInputImage::Pointer;
264  using InputImagePixelType = typename TInputImage::PixelType;
267 
269  using ImageMaskType = TMaskImage;
270  using ImageMaskPointer = typename ImageMaskType::Pointer;
272 
278 
282  using SlabRegionVectorIteratorType = typename SlabRegionVectorType::iterator;
283 
286 
290 
293 
296 
299 
303  void
304  SetInputMask(ImageMaskType * inputMask);
305  itkGetModifiableObjectMacro(InputMask, ImageMaskType);
307 
310  void
311  SetOutputMask(ImageMaskType * outputMask);
312  itkGetModifiableObjectMacro(OutputMask, ImageMaskType);
314 
315 #if defined(ITK_LEGACY_REMOVE)
316 
319  void
321  {
322  m_BiasFieldMultiplicative = flag;
323  }
324 #endif // defined ( ITK_LEGACY_REMOVE )
325 
329  itkSetMacro(BiasFieldMultiplicative, bool);
330  itkGetConstMacro(BiasFieldMultiplicative, bool);
331  itkBooleanMacro(BiasFieldMultiplicative);
333 
334 #if defined(ITK_LEGACY_REMOVE)
335 
336  bool
338  {
339  return m_BiasFieldMultiplicative;
340  }
341 #endif // defined ( ITK_LEGACY_REMOVE )
342 
347  itkSetMacro(UsingInterSliceIntensityCorrection, bool);
348  itkGetConstMacro(UsingInterSliceIntensityCorrection, bool);
349  itkBooleanMacro(UsingInterSliceIntensityCorrection);
351 
357  itkSetMacro(UsingSlabIdentification, bool);
358  itkGetConstMacro(UsingSlabIdentification, bool);
359  itkBooleanMacro(UsingSlabIdentification);
361 
362  itkSetMacro(SlabBackgroundMinimumThreshold, InputImagePixelType);
363  itkGetConstReferenceMacro(SlabBackgroundMinimumThreshold, InputImagePixelType);
364 
365  itkSetMacro(SlabNumberOfSamples, unsigned int);
366  itkGetConstReferenceMacro(SlabNumberOfSamples, unsigned int);
367 
368  itkSetMacro(SlabTolerance, double);
369  itkGetConstReferenceMacro(SlabTolerance, double);
370 
376  itkSetMacro(UsingBiasFieldCorrection, bool);
377  itkGetConstMacro(UsingBiasFieldCorrection, bool);
378  itkBooleanMacro(UsingBiasFieldCorrection);
380 
383  itkSetMacro(GeneratingOutput, bool);
384  itkGetConstMacro(GeneratingOutput, bool);
385  itkBooleanMacro(GeneratingOutput);
387 
390  itkSetMacro(SlicingDirection, int);
391  itkGetConstMacro(SlicingDirection, int);
393 
395  itkSetMacro(BiasFieldDegree, int);
396  itkGetConstMacro(BiasFieldDegree, int);
398 
401  void
403  {
404  this->Modified();
405  m_BiasFieldCoefficients = coefficients;
406  }
408 
412  BiasFieldType::CoefficientArrayType
414  {
415  return m_EstimatedBiasFieldCoefficients;
416  }
417 
421  void
422  SetTissueClassStatistics(const Array<double> & means, const Array<double> & sigmas);
423 
426  itkSetMacro(VolumeCorrectionMaximumIteration, int);
427  itkGetConstMacro(VolumeCorrectionMaximumIteration, int);
429 
432  itkSetMacro(InterSliceCorrectionMaximumIteration, int);
433  itkGetConstMacro(InterSliceCorrectionMaximumIteration, int);
435 
437  itkSetMacro(OptimizerInitialRadius, double);
438  itkGetConstMacro(OptimizerInitialRadius, double);
440 
442  itkSetMacro(OptimizerGrowthFactor, double);
443  itkGetConstMacro(OptimizerGrowthFactor, double);
445 
448  itkSetMacro(OptimizerShrinkFactor, double);
449  itkGetConstMacro(OptimizerShrinkFactor, double);
450 
457  void
458  SetNumberOfLevels(unsigned int num);
459 
461  itkGetConstMacro(NumberOfLevels, unsigned int);
462 
469  void
470  SetSchedule(const ScheduleType & schedule);
471 
473  itkGetConstReferenceMacro(Schedule, ScheduleType);
474 
479  void
480  SetStartingShrinkFactors(unsigned int factor);
481 
482  void
483  SetStartingShrinkFactors(const unsigned int * factors);
484 
486  const unsigned int *
487  GetStartingShrinkFactors() const;
488 
492  static bool
493  IsScheduleDownwardDivisible(const ScheduleType & schedule);
494 
501  void
502  Initialize();
503 
506  BiasFieldType
507  EstimateBiasField(InputImageRegionType region, unsigned int degree, int maximumIteration);
508 
512  void
513  CorrectImage(BiasFieldType & bias, InputImageRegionType region);
514 
517  void
518  CorrectInterSliceIntensityInhomogeneity(InputImageRegionType region);
519 
520 protected:
522  ~MRIBiasFieldCorrectionFilter() override = default;
523  void
524  PrintSelf(std::ostream & os, Indent indent) const override;
525 
528  bool
529  CheckMaskImage(ImageMaskType * mask);
530 
531 protected:
535  void
536  Log1PImage(InternalImageType * source, InternalImageType * target);
537 
540  void
541  ExpImage(InternalImageType * source, InternalImageType * target);
542 
545  template <typename TSource, typename TTarget>
546  void
547  CopyAndConvertImage(const TSource * source, TTarget * target, typename TTarget::RegionType requestedRegion)
548  {
549  using SourceIterator = ImageRegionConstIterator<TSource>;
550  using TargetIterator = ImageRegionIterator<TTarget>;
551  using TargetPixelType = typename TTarget::PixelType;
552 
553  SourceIterator s_iter(source, requestedRegion);
554  TargetIterator t_iter(target, requestedRegion);
555 
556  s_iter.GoToBegin();
557  t_iter.GoToBegin();
558  while (!s_iter.IsAtEnd())
559  {
560  t_iter.Set(static_cast<TargetPixelType>(s_iter.Get()));
561  ++s_iter;
562  ++t_iter;
563  }
564  }
565 
570  void
571  GetBiasFieldSize(InputImageRegionType region, BiasFieldType::DomainSizeType & biasSize);
572 
576  void
577  AdjustSlabRegions(SlabRegionVectorType & slabs, OutputImageRegionType requestedRegion);
578 
579  void
580  GenerateData() override;
581 
582 private:
585 
588 
591 
594 
597 
600 
603 
605  bool m_BiasFieldMultiplicative{ true };
606 
609  bool m_UsingSlabIdentification{ false };
610  bool m_UsingBiasFieldCorrection{ true };
611  bool m_GeneratingOutput{ true };
612 
613  unsigned int m_SlabNumberOfSamples{ 200 };
615  double m_SlabTolerance{ 0.0 };
616 
618  int m_BiasFieldDegree{ 3 };
619 
621  unsigned int m_NumberOfLevels{ 0 };
622 
625 
629 
633 
634  int m_VolumeCorrectionMaximumIteration{ 2000 };
635 
636  int m_InterSliceCorrectionMaximumIteration{ 4000 };
637 
639  double m_OptimizerInitialRadius{ 1.01 };
640 
642  double m_OptimizerGrowthFactor{ 1.05 };
643 
646 
649 
652 };
653 
654 } // end namespace itk
655 
656 #ifndef ITK_MANUAL_INSTANTIATION
657 # include "itkMRIBiasFieldCorrectionFilter.hxx"
658 #endif
659 
660 #endif
itk::MRASlabIdentifier::SlabRegionVectorType
std::vector< ImageRegionType > SlabRegionVectorType
Definition: itkMRASlabIdentifier.h:97
itk::MultivariateLegendrePolynomial::CoefficientArrayType
DoubleArrayType CoefficientArrayType
Definition: itkMultivariateLegendrePolynomial.h:87
itk::SingleValuedCostFunction::MeasureType
double MeasureType
Definition: itkSingleValuedCostFunction.h:50
itk::MRIBiasEnergyFunction::SetSamplingFactors
void SetSamplingFactors(const SamplingFactorType factor)
Definition: itkMRIBiasFieldCorrectionFilter.h:115
itk::OptimizerParameters< TInternalComputationValueType >
itk::MRIBiasEnergyFunction::BiasFieldType
TBiasField BiasFieldType
Definition: itkMRIBiasFieldCorrectionFilter.h:76
itk::ImageSource::OutputImagePointer
typename OutputImageType::Pointer OutputImagePointer
Definition: itkImageSource.h:91
itk::MRIBiasFieldCorrectionFilter::m_InternalInput
InternalImagePointer m_InternalInput
Definition: itkMRIBiasFieldCorrectionFilter.h:596
itk::MultivariateLegendrePolynomial
2D and 3D multivariate Legendre Polynomial
Definition: itkMultivariateLegendrePolynomial.h:77
itk::MRIBiasEnergyFunction::SamplingFactorType
unsigned int[SpaceDimension] SamplingFactorType
Definition: itkMRIBiasFieldCorrectionFilter.h:94
itk::MRASlabIdentifier
identifies slab in MR images comparing minimum intensity averages
Definition: itkMRASlabIdentifier.h:66
itk::MRIBiasFieldCorrectionFilter::CopyAndConvertImage
void CopyAndConvertImage(const TSource *source, TTarget *target, typename TTarget::RegionType requestedRegion)
Definition: itkMRIBiasFieldCorrectionFilter.h:547
itkMultivariateLegendrePolynomial.h
itk::MRIBiasEnergyFunction::MaskPointer
typename MaskType::Pointer MaskPointer
Definition: itkMRIBiasFieldCorrectionFilter.h:72
itk::MRIBiasEnergyFunction::SetBiasField
void SetBiasField(BiasFieldType *bias)
Definition: itkMRIBiasFieldCorrectionFilter.h:107
itk::MRIBiasEnergyFunction::ImageIndexType
typename ImageType::IndexType ImageIndexType
Definition: itkMRIBiasFieldCorrectionFilter.h:69
itk::MRIBiasEnergyFunction
Represents a cost function for MRI bias field correction optimization.
Definition: itkMRIBiasFieldCorrectionFilter.h:48
itk::MRIBiasFieldCorrectionFilter::ImageMaskRegionType
typename ImageMaskType::RegionType ImageMaskRegionType
Definition: itkMRIBiasFieldCorrectionFilter.h:271
itk::MRIBiasFieldCorrectionFilter::InternalImagePixelType
typename InternalImageType::PixelType InternalImagePixelType
Definition: itkMRIBiasFieldCorrectionFilter.h:275
itk::MRIBiasFieldCorrectionFilter::InputImageSizeType
typename TInputImage::SizeType InputImageSizeType
Definition: itkMRIBiasFieldCorrectionFilter.h:265
itk::MRIBiasEnergyFunction::GetDerivative
void GetDerivative(const ParametersType &, DerivativeType &) const override
Definition: itkMRIBiasFieldCorrectionFilter.h:140
itk::GTest::TypedefsAndConstructors::Dimension2::SizeType
ImageBaseType::SizeType SizeType
Definition: itkGTestTypedefsAndConstructors.h:49
itk::MRIBiasEnergyFunction::m_InternalEnergyFunction
InternalEnergyFunction * m_InternalEnergyFunction
Definition: itkMRIBiasFieldCorrectionFilter.h:174
itk::SmartPointer< Self >
itkImageRegionIterator.h
itk::Indent
Control indentation during Print() invocation.
Definition: itkIndent.h:49
itk::MRIBiasFieldCorrectionFilter::ImageMaskType
TMaskImage ImageMaskType
Definition: itkMRIBiasFieldCorrectionFilter.h:269
itk::MRIBiasFieldCorrectionFilter::m_InputMask
ImageMaskPointer m_InputMask
Definition: itkMRIBiasFieldCorrectionFilter.h:590
itk::ImageToImageFilter::InputImagePixelType
typename InputImageType::PixelType InputImagePixelType
Definition: itkImageToImageFilter.h:133
itk::MRIBiasFieldCorrectionFilter::m_OptimizerShrinkFactor
double m_OptimizerShrinkFactor
Definition: itkMRIBiasFieldCorrectionFilter.h:645
itk::ImageRegionIterator
A multi-dimensional iterator templated over image type that walks a region of pixels.
Definition: itkImageRegionIterator.h:80
itk::GTest::TypedefsAndConstructors::Dimension2::IndexType
ImageBaseType::IndexType IndexType
Definition: itkGTestTypedefsAndConstructors.h:50
itk::ImageToImageFilter
Base class for filters that take an image as input and produce an image as output.
Definition: itkImageToImageFilter.h:108
itk::ImageSource
Base class for all process objects that output image data.
Definition: itkImageSource.h:67
itk::MRIBiasFieldCorrectionFilter::IsBiasFieldMultiplicative
bool IsBiasFieldMultiplicative()
Definition: itkMRIBiasFieldCorrectionFilter.h:337
itk::MRIBiasFieldCorrectionFilter::m_EnergyFunction
EnergyFunctionPointer m_EnergyFunction
Definition: itkMRIBiasFieldCorrectionFilter.h:584
itk::LightObject
Light weight base class for most itk classes.
Definition: itkLightObject.h:59
itk::Statistics::NormalVariateGenerator
Normal random variate generator.
Definition: itkNormalVariateGenerator.h:98
itk::MRIBiasEnergyFunction::MaskType
TImageMask MaskType
Definition: itkMRIBiasFieldCorrectionFilter.h:71
itk::MRIBiasFieldCorrectionFilter::m_OutputMask
ImageMaskPointer m_OutputMask
Definition: itkMRIBiasFieldCorrectionFilter.h:593
itk::ImageToImageFilter::InputImagePointer
typename InputImageType::Pointer InputImagePointer
Definition: itkImageToImageFilter.h:130
itk::MRIBiasEnergyFunction::m_Image
ImagePointer m_Image
Definition: itkMRIBiasFieldCorrectionFilter.h:165
itk::MRIBiasEnergyFunction::m_SamplingFactor
SamplingFactorType m_SamplingFactor
Definition: itkMRIBiasFieldCorrectionFilter.h:177
itk::MRIBiasEnergyFunction::GetEnergy0
double GetEnergy0(double diff)
Definition: itkMRIBiasFieldCorrectionFilter.h:127
itk::MRIBiasFieldCorrectionFilter::m_BiasFieldCoefficients
BiasFieldType::CoefficientArrayType m_BiasFieldCoefficients
Definition: itkMRIBiasFieldCorrectionFilter.h:628
itk::GTest::TypedefsAndConstructors::Dimension2::RegionType
ImageBaseType::RegionType RegionType
Definition: itkGTestTypedefsAndConstructors.h:54
itk::MRIBiasFieldCorrectionFilter::IsBiasFieldMultiplicative
void IsBiasFieldMultiplicative(bool flag)
Definition: itkMRIBiasFieldCorrectionFilter.h:320
itk::MRIBiasFieldCorrectionFilter::OutputImageSizeType
typename TOutputImage::SizeType OutputImageSizeType
Definition: itkMRIBiasFieldCorrectionFilter.h:258
itk::SingleValuedCostFunction
This class is a base for the CostFunctions returning a single value.
Definition: itkSingleValuedCostFunction.h:34
itk::Region
A region represents some portion or piece of data.
Definition: itkRegion.h:65
itk::MRIBiasEnergyFunction::ImageType
TImage ImageType
Definition: itkMRIBiasFieldCorrectionFilter.h:66
itkOnePlusOneEvolutionaryOptimizer.h
itk::ImageToImageFilter::InputImageType
TInputImage InputImageType
Definition: itkImageToImageFilter.h:129
itkImageToImageFilter.h
itk::MRIBiasFieldCorrectionFilter::m_Slabs
SlabRegionVectorType m_Slabs
Definition: itkMRIBiasFieldCorrectionFilter.h:599
itk::MRIBiasFieldCorrectionFilter::SlabRegionVectorType
typename MRASlabIdentifierType::SlabRegionVectorType SlabRegionVectorType
Definition: itkMRIBiasFieldCorrectionFilter.h:281
itk::MRIBiasEnergyFunction::m_BiasField
BiasFieldType * m_BiasField
Definition: itkMRIBiasFieldCorrectionFilter.h:162
itk::MRIBiasEnergyFunction::InternalEnergyFunction
CompositeValleyFunction InternalEnergyFunction
Definition: itkMRIBiasFieldCorrectionFilter.h:91
itk::Image::PixelType
TPixel PixelType
Definition: itkImage.h:106
itk::MRIBiasFieldCorrectionFilter::OutputImageIndexType
typename TOutputImage::IndexType OutputImageIndexType
Definition: itkMRIBiasFieldCorrectionFilter.h:256
itk::MRIBiasFieldCorrectionFilter::m_TissueClassMeans
Array< double > m_TissueClassMeans
Definition: itkMRIBiasFieldCorrectionFilter.h:648
itk::MRIBiasFieldCorrectionFilter::InternalImageRegionType
typename InternalImageType::RegionType InternalImageRegionType
Definition: itkMRIBiasFieldCorrectionFilter.h:277
itk::ImageSource::OutputImageRegionType
typename OutputImageType::RegionType OutputImageRegionType
Definition: itkImageSource.h:92
itk::MRIBiasFieldCorrectionFilter::m_NormalVariateGenerator
NormalVariateGeneratorType::Pointer m_NormalVariateGenerator
Definition: itkMRIBiasFieldCorrectionFilter.h:587
itk::MRIBiasFieldCorrectionFilter::m_SlicingDirection
int m_SlicingDirection
Definition: itkMRIBiasFieldCorrectionFilter.h:602
itk::MRIBiasFieldCorrectionFilter::m_SlabBackgroundMinimumThreshold
InputImagePixelType m_SlabBackgroundMinimumThreshold
Definition: itkMRIBiasFieldCorrectionFilter.h:614
itkArray2D.h
itk::MRIBiasFieldCorrectionFilter::m_Schedule
ScheduleType m_Schedule
Definition: itkMRIBiasFieldCorrectionFilter.h:624
itk::MRIBiasFieldCorrectionFilter::GetEstimatedBiasFieldCoefficients
BiasFieldType::CoefficientArrayType GetEstimatedBiasFieldCoefficients()
Definition: itkMRIBiasFieldCorrectionFilter.h:413
itk::MRIBiasEnergyFunction::ImagePointer
typename ImageType::Pointer ImagePointer
Definition: itkMRIBiasFieldCorrectionFilter.h:67
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::MRIBiasFieldCorrectionFilter::EnergyFunctionPointer
typename EnergyFunctionType::Pointer EnergyFunctionPointer
Definition: itkMRIBiasFieldCorrectionFilter.h:289
itk::MRIBiasEnergyFunction::ImageRegionType
typename ImageType::RegionType ImageRegionType
Definition: itkMRIBiasFieldCorrectionFilter.h:70
itkNormalVariateGenerator.h
itk::ProcessObject
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
Definition: itkProcessObject.h:138
itkMRASlabIdentifier.h
itk::MRIBiasEnergyFunction::MaskElementType
typename MaskType::PixelType MaskElementType
Definition: itkMRIBiasFieldCorrectionFilter.h:73
itk::ImageSource::OutputImagePixelType
typename OutputImageType::PixelType OutputImagePixelType
Definition: itkImageSource.h:93
itk::Array
Array class with size defined at construction time.
Definition: itkArray.h:47
itk::MRIBiasFieldCorrectionFilter::m_EstimatedBiasFieldCoefficients
BiasFieldType::CoefficientArrayType m_EstimatedBiasFieldCoefficients
Definition: itkMRIBiasFieldCorrectionFilter.h:632
itk::MRIBiasEnergyFunction::ImageElementType
typename ImageType::PixelType ImageElementType
Definition: itkMRIBiasFieldCorrectionFilter.h:68
itk::ImageRegionConstIterator
A multi-dimensional iterator templated over image type that walks a region of pixels.
Definition: itkImageRegionConstIterator.h:109
itk::MRIBiasFieldCorrectionFilter::SlabRegionVectorIteratorType
typename SlabRegionVectorType::iterator SlabRegionVectorIteratorType
Definition: itkMRIBiasFieldCorrectionFilter.h:282
itk::Image
Templated n-dimensional image class.
Definition: itkImage.h:86
itk::MRIBiasFieldCorrectionFilter
Corrects 3D MRI bias field.
Definition: itkMRIBiasFieldCorrectionFilter.h:232
itk::MRIBiasFieldCorrectionFilter::InternalImagePointer
typename InternalImageType::Pointer InternalImagePointer
Definition: itkMRIBiasFieldCorrectionFilter.h:276
itk::MRIBiasFieldCorrectionFilter::ImageMaskPointer
typename ImageMaskType::Pointer ImageMaskPointer
Definition: itkMRIBiasFieldCorrectionFilter.h:270
itk::OnePlusOneEvolutionaryOptimizer
1+1 evolutionary strategy optimizer
Definition: itkOnePlusOneEvolutionaryOptimizer.h:71
itk::MRIBiasFieldCorrectionFilter::SetInitialBiasFieldCoefficients
void SetInitialBiasFieldCoefficients(const BiasFieldType::CoefficientArrayType &coefficients)
Definition: itkMRIBiasFieldCorrectionFilter.h:402
itk::Array2D< unsigned int >
itk::MRIBiasFieldCorrectionFilter::m_TissueClassSigmas
Array< double > m_TissueClassSigmas
Definition: itkMRIBiasFieldCorrectionFilter.h:651
itk::MRIBiasEnergyFunction::m_Region
ImageRegionType m_Region
Definition: itkMRIBiasFieldCorrectionFilter.h:171
itk::MRIBiasFieldCorrectionFilter::m_UsingInterSliceIntensityCorrection
bool m_UsingInterSliceIntensityCorrection
Definition: itkMRIBiasFieldCorrectionFilter.h:608
itk::ImageToImageFilter::InputImageRegionType
typename InputImageType::RegionType InputImageRegionType
Definition: itkImageToImageFilter.h:132
itk::MRIBiasFieldCorrectionFilter::InputImageIndexType
typename TInputImage::IndexType InputImageIndexType
Definition: itkMRIBiasFieldCorrectionFilter.h:263
itkCompositeValleyFunction.h
itk::MRIBiasEnergyFunction::m_Mask
MaskPointer m_Mask
Definition: itkMRIBiasFieldCorrectionFilter.h:168
itk::ImageSource::OutputImageType
TOutputImage OutputImageType
Definition: itkImageSource.h:90