Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitkIntensityQuantifier.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 
14 #ifndef mitkIntensityQuantifier_h
15 #define mitkIntensityQuantifier_h
16 
17 #include <MitkCLCoreExports.h>
18 
19 #include <mitkBaseData.h>
20 #include <mitkImage.h>
21 
22 namespace mitk
23 {
39 {
40 public:
42  itkFactorylessNewMacro(Self);
43  itkCloneMacro(Self);
44 
46 
56  void InitializeByMinimumMaximum(double minimum, double maximum, unsigned int bins);
57 
67  void InitializeByBinsizeAndBins(double minimum, unsigned int bins, double binsize);
68 
79  void InitializeByBinsizeAndMaximum(double minimum, double maximum, double binsize);
80 
87  void InitializeByImage(const Image* image, unsigned int bins);
88 
96  void InitializeByImageAndMaximum(const Image* image, double maximum, unsigned int bins);
97 
105  void InitializeByImageAndMinimum(const Image* image, double minimum, unsigned int bins);
106 
114  void InitializeByImageRegion(const Image* image, const Image* mask, unsigned int bins);
115 
124  void InitializeByImageRegionAndMinimum(const Image* image, const Image* mask, double minimum, unsigned int bins);
125 
134  void InitializeByImageRegionAndMaximum(const Image* image, const Image* mask, double maximum, unsigned int bins);
135 
142  void InitializeByImageAndBinsize(const Image* image, double binsize);
143 
151  void InitializeByImageAndBinsizeAndMinimum(const Image* image, double minimum, double binsize);
152 
160  void InitializeByImageAndBinsizeAndMaximum(const Image* image, double maximum, double binsize);
161 
169  void InitializeByImageRegionAndBinsize(const Image* image, const Image* mask, double binsize);
170 
179  void InitializeByImageRegionAndBinsizeAndMinimum(const Image* image, const Image* mask, double minimum, double binsize);
180 
189  void InitializeByImageRegionAndBinsizeAndMaximum(const Image* image, const Image* mask, double maximum, double binsize);
190 
200  unsigned int IntensityToIndex(double intensity);
201 
208  double IndexToMinimumIntensity(unsigned int index);
209 
216  double IndexToMeanIntensity(unsigned int index);
217 
224  double IndexToMaximumIntensity(unsigned int index);
225 
227  itkGetConstMacro(Initialized, bool);
229  itkGetConstMacro(Bins, unsigned int);
231  itkGetConstMacro(Binsize, double);
233  itkGetConstMacro(Minimum, double);
235  itkGetConstMacro(Maximum, double);
236 
237 public:
238 
239 //#ifndef DOXYGEN_SKIP
240 
242  bool RequestedRegionIsOutsideOfTheBufferedRegion() override { return true; };
243  bool VerifyRequestedRegion() override { return false; };
244  void SetRequestedRegion (const itk::DataObject * /*data*/) override {};
245 
246  // Override
247  bool IsEmpty() const override
248  {
249  if(IsInitialized() == false)
250  return true;
251  const TimeGeometry* timeGeometry = const_cast<IntensityQuantifier*>(this)->GetUpdatedTimeGeometry();
252  if(timeGeometry == nullptr)
253  return true;
254  return false;
255  }
256 
257 
258 private:
259  bool m_Initialized;
260  unsigned int m_Bins;
261  double m_Binsize;
262  double m_Minimum;
263  double m_Maximum;
264 
265 };
266 }
267 
268 #endif
#define MITKCLCORE_EXPORT
Base class of all data objects.
Definition: mitkBaseData.h:60
Image class for storing multi-dimensional medical image data.
Definition: mitkImage.h:76
Maps continuous image intensity values to discrete histogram bin indices.
void InitializeByImageRegionAndBinsize(const Image *image, const Image *mask, double binsize)
Initialize from masked image region using a specified bin size.
void InitializeByImageRegion(const Image *image, const Image *mask, unsigned int bins)
Initialize from the intensity range of masked voxels in an image.
double IndexToMaximumIntensity(unsigned int index)
Get the upper bound intensity of a histogram bin.
void InitializeByImageRegionAndMinimum(const Image *image, const Image *mask, double minimum, unsigned int bins)
Initialize from masked image region with a specified minimum; maximum is computed.
void InitializeByImageRegionAndMaximum(const Image *image, const Image *mask, double maximum, unsigned int bins)
Initialize from masked image region with a specified maximum; minimum is computed.
void InitializeByImageAndMinimum(const Image *image, double minimum, unsigned int bins)
Initialize from an image with a specified minimum; maximum is computed from the image.
unsigned int IntensityToIndex(double intensity)
Map a continuous intensity value to a histogram bin index.
bool RequestedRegionIsOutsideOfTheBufferedRegion() override
Determine whether the RequestedRegion is outside of the BufferedRegion.
void InitializeByImageAndBinsizeAndMinimum(const Image *image, double minimum, double binsize)
Initialize from an image with specified minimum and bin size; maximum is computed.
void InitializeByMinimumMaximum(double minimum, double maximum, unsigned int bins)
Initialize with explicit minimum, maximum, and number of bins.
mitkClassMacro(IntensityQuantifier, BaseData)
void InitializeByImageRegionAndBinsizeAndMinimum(const Image *image, const Image *mask, double minimum, double binsize)
Initialize from masked image region with specified minimum and bin size; maximum is computed.
void InitializeByImageAndMaximum(const Image *image, double maximum, unsigned int bins)
Initialize from an image with a specified maximum; minimum is computed from the image.
double IndexToMeanIntensity(unsigned int index)
Get the center intensity of a histogram bin.
double IndexToMinimumIntensity(unsigned int index)
Get the lower bound intensity of a histogram bin.
bool VerifyRequestedRegion() override
Verify that the RequestedRegion is within the LargestPossibleRegion.
void InitializeByBinsizeAndMaximum(double minimum, double maximum, double binsize)
Initialize with explicit minimum, maximum, and bin size.
void InitializeByImage(const Image *image, unsigned int bins)
Initialize from the full intensity range of an image.
void InitializeByImageAndBinsizeAndMaximum(const Image *image, double maximum, double binsize)
Initialize from an image with specified maximum and bin size; minimum is computed.
void InitializeByBinsizeAndBins(double minimum, unsigned int bins, double binsize)
Initialize with explicit minimum, number of bins, and bin size.
void SetRequestedRegion(const itk::DataObject *) override
Set the requested region from this data object to match the requested region of the data object passe...
void InitializeByImageRegionAndBinsizeAndMaximum(const Image *image, const Image *mask, double maximum, double binsize)
Initialize from masked image region with specified maximum and bin size; minimum is computed.
void SetRequestedRegionToLargestPossibleRegion() override
Set the RequestedRegion to the LargestPossibleRegion.
bool IsEmpty() const override
Check whether the object contains data at any time step.
void InitializeByImageAndBinsize(const Image *image, double binsize)
Initialize from the full image intensity range using a specified bin size.
Find image slices visible on a given plane.