13 #ifndef mitkHotspotMaskGenerator_h
14 #define mitkHotspotMaskGenerator_h
16 #include <itkObject.h>
19 #include <itkTimeStamp.h>
78 itkGetConstMacro(HotspotRadiusInMM,
double);
79 itkSetMacro(HotspotRadiusInMM,
double);
87 itkGetConstMacro(HotspotMustBeCompletelyInsideImage,
bool);
88 itkSetMacro(HotspotMustBeCompletelyInsideImage,
bool);
98 itkSetMacro(
Label,
unsigned short);
118 ,Max(
itk::NumericTraits<double>::min())
119 ,Min(
itk::NumericTraits<double>::max())
126 template <
unsigned int VImageDimension>
127 itk::Size<VImageDimension>
128 CalculateConvolutionKernelSize(
double spacing[VImageDimension],
double radiusInMM);
131 template <
unsigned int VImageDimension>
133 GenerateHotspotSearchConvolutionKernel(
double spacing[VImageDimension],
double radiusInMM);
136 template <
typename TPixel,
unsigned int VImageDimension>
138 GenerateConvolutionImage(
const itk::Image<TPixel, VImageDimension>* inputImage );
142 template <
typename TPixel,
unsigned int VImageDimension>
144 FillHotspotMaskPixels( itk::Image<TPixel, VImageDimension>* maskImage,
145 itk::Point<double, VImageDimension> sphereCenter,
146 double sphereRadiusInMM);
150 template <
typename TPixel,
unsigned int VImageDimension>
152 CalculateHotspotMask(
const itk::Image<TPixel, VImageDimension>* inputImage,
153 const itk::Image<unsigned short, VImageDimension>* maskImage,
157 template <
typename TPixel,
unsigned int VImageDimension >
158 ImageExtrema CalculateExtremaWorld(
const itk::Image<TPixel, VImageDimension>* inputImage,
159 const itk::Image<unsigned short, VImageDimension>* maskImage,
160 double necessaryDistanceToImageBorderInMM,
163 bool IsUpdateRequired()
const;
168 MaskGenerator::Pointer m_Mask;
169 mitk::Image::Pointer m_InternalMask;
170 itk::Image<unsigned short, 2>::ConstPointer m_internalMask2D;
171 itk::Image<unsigned short, 3>::ConstPointer m_internalMask3D;
172 double m_HotspotRadiusInMM;
173 bool m_HotspotMustBeCompletelyInsideImage;
174 unsigned short m_Label;
175 vnl_vector<int> m_ConvolutionImageMinIndex, m_ConvolutionImageMaxIndex;
176 unsigned long m_InternalMaskUpdateTime;
#define MITKIMAGESTATISTICS_EXPORT
vnl_vector< int > MinIndex
vnl_vector< int > MaxIndex
Generates a spherical mask centered on the hotspot (brightest region) of an image.
itk::SmartPointer< const Self > ConstPointer
Image::ConstPointer DoGetMask(unsigned int) override
Must be overridden by derived classes to generate the requested mask.
unsigned int GetNumberOfMasks() const override
Returns the number of masks this generator provides.
~HotspotMaskGenerator() override
HotspotMaskGenerator Self
itk::SmartPointer< Self > Pointer
A data structure describing a label in a multi-label segmentation.
Abstract base class for all mask generators used in image statistics.
Find image slices visible on a given plane.