13 #ifndef MITKHOTSPOTCALCULATOR_H 14 #define MITKHOTSPOTCALCULATOR_H 16 #include <itkObject.h> 19 #include <itkTimeStamp.h> 63 void SetHotspotRadiusInMM(
double radiusInMillimeter);
65 const double& GetHotspotRadiusinMM()
const;
70 void SetHotspotMustBeCompletelyInsideImage(
bool hotspotCompletelyInsideImage);
72 bool GetHotspotMustBeCompletelyInsideImage()
const;
77 void SetLabel(
unsigned short label);
87 vnl_vector<int> GetHotspotIndex();
92 vnl_vector<int> GetConvolutionImageMinIndex();
98 void SetTimeStep(
unsigned int timeStep)
override;
116 ,Max(
itk::NumericTraits<double>::
min())
117 ,Min(
itk::NumericTraits<double>::
max())
124 template <
unsigned int VImageDimension>
125 itk::Size<VImageDimension>
126 CalculateConvolutionKernelSize(
double spacing[VImageDimension],
double radiusInMM);
129 template <
unsigned int VImageDimension>
131 GenerateHotspotSearchConvolutionKernel(
double spacing[VImageDimension],
double radiusInMM);
134 template <
typename TPixel,
unsigned int VImageDimension>
136 GenerateConvolutionImage(
const itk::Image<TPixel, VImageDimension>* inputImage );
140 template <
typename TPixel,
unsigned int VImageDimension>
142 FillHotspotMaskPixels( itk::Image<TPixel, VImageDimension>* maskImage,
143 itk::Point<double, VImageDimension> sphereCenter,
144 double sphereRadiusInMM);
148 template <
typename TPixel,
unsigned int VImageDimension>
150 CalculateHotspotMask(itk::Image<TPixel, VImageDimension>* inputImage,
151 typename itk::Image<unsigned short, VImageDimension>::Pointer maskImage,
155 template <
typename TPixel,
unsigned int VImageDimension >
156 ImageExtrema CalculateExtremaWorld(
const itk::Image<TPixel, VImageDimension>* inputImage,
157 typename itk::Image<unsigned short, VImageDimension>::Pointer maskImage,
158 double neccessaryDistanceToImageBorderInMM,
161 bool IsUpdateRequired()
const;
168 itk::Image<unsigned short, 2>::Pointer m_internalMask2D;
169 itk::Image<unsigned short, 3>::Pointer m_internalMask3D;
170 double m_HotspotRadiusinMM;
171 bool m_HotspotMustBeCompletelyInsideImage;
172 unsigned short m_Label;
173 vnl_vector<int> m_ConvolutionImageMinIndex, m_ConvolutionImageMaxIndex;
174 unsigned long m_InternalMaskUpdateTime;
177 #endif // MITKHOTSPOTCALCULATOR vnl_vector< int > MaxIndex
itk::SmartPointer< const Self > ConstPointer
HotspotMaskGenerator Self
Base Class for all Mask Generators. Mask generators are classes that provide functionality for the cr...
DataCollection - Class to facilitate loading/accessing structured data.
#define MITKIMAGESTATISTICS_EXPORT
vnl_vector< int > MinIndex
itk::SmartPointer< Self > Pointer
mitk::Image::Pointer mask
The HotspotMaskGenerator class is used when a hotspot has to be found in an image. A hotspot is the region of the image where the mean intensity is maximal (=brightest spot). It is usually used in PET scans. The identification of the hotspot is done as follows: First a cubic (or circular, if image is 2d) mask of predefined size is generated. This mask is then convolved with the input image (in fourier domain). The maximum value of the convolved image then corresponds to the hotspot. If a maskGenerator is set, only the pixels of the convolved image where the corresponding mask is == label are searched for the maximum value.