Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
itkMultiHistogramFilter.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 itkMultiHistogramFilter_h
14 #define itkMultiHistogramFilter_h
15 
16 #include <itkImageToImageFilter.h>
17 
18 namespace itk
19 {
29  template<typename TInputImageType, typename TOuputImageType >
30  class MultiHistogramFilter : public ImageToImageFilter< TInputImageType, TOuputImageType>
31  {
32  public:
34  typedef ImageToImageFilter< TInputImageType, TOuputImageType > Superclass;
36  typedef typename TInputImageType::ConstPointer InputImagePointer;
37  typedef typename TOuputImageType::Pointer OutputImagePointer;
38  typedef typename TOuputImageType::RegionType OutputImageRegionType;
39 
40  itkNewMacro (Self);
41  itkTypeMacro(MultiHistogramFilter, ImageToImageFilter);
42 
43  itkSetMacro(Delta, double);
44  itkGetConstMacro(Delta, double);
45 
46  itkSetMacro(Offset, double);
47  itkGetConstMacro(Offset, double);
48 
49  itkSetMacro(Bins, int);
50  itkGetConstMacro(Bins, int);
51 
52  itkSetMacro(Size, int);
53  itkGetConstMacro(Size, int);
54 
55  itkSetMacro(UseImageIntensityRange, bool);
56  itkGetConstMacro(UseImageIntensityRange, bool);
57 
58  protected:
60  ~MultiHistogramFilter() override{};
61 
62  void ThreadedGenerateData(const OutputImageRegionType & outputRegionForThread, ThreadIdType threadId) override;
63  void BeforeThreadedGenerateData(void) override;
64 
65 
66  using itk::ProcessObject::MakeOutput;
67  itk::ProcessObject::DataObjectPointer MakeOutput(itk::ProcessObject::DataObjectPointerArraySizeType /*idx*/) override;
68 
70 
71  private:
72  MultiHistogramFilter(const Self &); // purposely not implemented
73  void operator=(const Self &); // purposely not implemented
74 
75  double m_Delta;
76  double m_Offset;
77  int m_Bins;
78  int m_Size;
79  bool m_UseImageIntensityRange;
80  };
81 }
82 
83 #ifndef ITK_MANUAL_INSTANTIATION
84 #include <itkMultiHistogramFilter.cpp>
85 #endif
86 
87 #endif // itkMultiHistogramFilter_h
Computes a multi-bin local histogram for each voxel.
itk::ProcessObject::DataObjectPointer MakeOutput(itk::ProcessObject::DataObjectPointerArraySizeType) override
TOuputImageType::Pointer OutputImagePointer
TInputImageType::ConstPointer InputImagePointer
void BeforeThreadedGenerateData(void) override
void CreateOutputImage(InputImagePointer input, OutputImagePointer output)
void ThreadedGenerateData(const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId) override
ImageToImageFilter< TInputImageType, TOuputImageType > Superclass
TOuputImageType::RegionType OutputImageRegionType