1 #ifndef MITKHOTSPOTCALCULATOR_H
2 #define MITKHOTSPOTCALCULATOR_H
7 #include <itkTimeStamp.h>
43 void SetInputImage(
mitk::
Image::Pointer inputImage);
53 void SetHotspotRadiusInMM(
double radiusInMillimeter);
55 const
double& GetHotspotRadiusinMM() const;
60 void SetHotspotMustBeCompletelyInsideImage(
bool hotspotCompletelyInsideImage);
62 bool GetHotspotMustBeCompletelyInsideImage() const;
67 void SetLabel(
unsigned short label);
77 vnl_vector<
int> GetHotspotIndex();
82 vnl_vector<
int> GetConvolutionImageMinIndex();
88 void SetTimeStep(
unsigned int timeStep);
91 HotspotMaskGenerator();
93 ~HotspotMaskGenerator();
106 ,Max(
itk::NumericTraits<double>::
min())
107 ,Min(
itk::NumericTraits<double>::
max())
114 template <
unsigned int VImageDimension>
115 itk::Size<VImageDimension>
116 CalculateConvolutionKernelSize(
double spacing[VImageDimension],
double radiusInMM);
119 template <
unsigned int VImageDimension>
121 GenerateHotspotSearchConvolutionKernel(
double spacing[VImageDimension],
double radiusInMM);
124 template <
typename TPixel,
unsigned int VImageDimension>
126 GenerateConvolutionImage(
const itk::Image<TPixel, VImageDimension>* inputImage );
130 template <
typename TPixel,
unsigned int VImageDimension>
132 FillHotspotMaskPixels( itk::Image<TPixel, VImageDimension>* maskImage,
133 itk::Point<double, VImageDimension> sphereCenter,
134 double sphereRadiusInMM);
138 template <
typename TPixel,
unsigned int VImageDimension>
140 CalculateHotspotMask(itk::Image<TPixel, VImageDimension>* inputImage,
145 template <
typename TPixel,
unsigned int VImageDimension >
146 ImageExtrema CalculateExtremaWorld(
const itk::Image<TPixel, VImageDimension>* inputImage,
148 double neccessaryDistanceToImageBorderInMM,
151 bool IsUpdateRequired()
const;
160 double m_HotspotRadiusinMM;
161 bool m_HotspotMustBeCompletelyInsideImage;
162 bool m_HotspotParamsChanged;
163 unsigned short m_Label;
164 vnl_vector<int> m_ConvolutionImageMinIndex, m_ConvolutionImageMaxIndex;
165 unsigned long m_InternalMaskUpdateTime;
168 #endif // MITKHOTSPOTCALCULATOR
vnl_vector< int > MaxIndex
itk::SmartPointer< Self > Pointer
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
Image class for storing images.
itk::SmartPointer< Self > Pointer
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.