Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
itkMaskedNaryStatisticsImageFilter.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef itkMaskedNaryStatisticsImageFilter_h
14 #define itkMaskedNaryStatisticsImageFilter_h
15 
16 #include <itkImageToImageFilter.h>
17 #include <itkImageIterator.h>
18 #include <itkArray.h>
19 
20 namespace itk
21 {
28 template< class TInputImage, class TMaskImage = ::itk::Image<unsigned char, TInputImage::ImageDimension> >
30  public ImageToImageFilter< TInputImage, TInputImage >
31 
32 {
33 public:
36  typedef ImageToImageFilter< TInputImage, TInputImage > Superclass;
40  itkNewMacro(Self);
41 
43  itkTypeMacro(MaskedNaryStatisticsImageFilter, ImageToImageFilter);
44 
46  typedef TInputImage InputImageType;
47  typedef typename InputImageType::Pointer InputImagePointer;
48  typedef typename InputImageType::RegionType InputImageRegionType;
49  typedef typename InputImageType::PixelType InputImagePixelType;
50  typedef typename NumericTraits< InputImagePixelType >::RealType RealType;
51 
52  typedef std::vector<InputImagePixelType> PixelVectorType;
53  typedef std::vector<RealType> RealVectorType;
54 
55  typedef TMaskImage MaskImageType;
56  typedef typename MaskImageType::Pointer MaskImagePointer;
57  typedef typename MaskImageType::ConstPointer MaskImageConstPointer;
58  typedef typename MaskImageType::RegionType MaskImageRegionType;
59 
60  itkSetConstObjectMacro(Mask, MaskImageType);
61  itkGetConstObjectMacro(Mask, MaskImageType);
62 
63  itkGetConstReferenceMacro(Mean,RealVectorType);
64  itkGetConstReferenceMacro(Sigma,RealVectorType);
65  itkGetConstReferenceMacro(Variance,RealVectorType);
66  itkGetConstReferenceMacro(Sum,RealVectorType);
67  itkGetConstReferenceMacro(Minimum,PixelVectorType);
68  itkGetConstReferenceMacro(Maximum,PixelVectorType);
69 
72  InputImageDimension, unsigned int, TInputImage::ImageDimension);
73 
74 #ifdef ITK_USE_CONCEPT_CHECKING
76  itkConceptMacro( SameDimensionCheck,
77  ( Concept::SameDimension< InputImageDimension, InputImageDimension > ) );
78  itkConceptMacro( OutputHasZeroCheck,
79  ( Concept::HasZero< InputImagePixelType > ) );
81 #endif
82 protected:
85 
86  void GenerateData() override;
87 
88 private:
89  MaskedNaryStatisticsImageFilter(const Self &); //purposely not implemented
90  void operator=(const Self &); //purposely not implemented
91 
92  RealVectorType m_Mean;
93  RealVectorType m_Sigma;
94  RealVectorType m_Variance;
95  RealVectorType m_Sum;
96  PixelVectorType m_Minimum;
97  PixelVectorType m_Maximum;
98 
99  MaskImageConstPointer m_Mask;
100 };
101 } // end namespace itk
102 
103 #ifndef ITK_MANUAL_INSTANTIATION
104 #include <itkMaskedNaryStatisticsImageFilter.tpp>
105 #endif
106 
107 #endif
Computes a masked statistic on N images and produces vectors of those statistic results.
ImageToImageFilter< TInputImage, TInputImage > Superclass
std::vector< InputImagePixelType > PixelVectorType
NumericTraits< InputImagePixelType >::RealType RealType
itkStaticConstMacro(InputImageDimension, unsigned int, TInputImage::ImageDimension)