13 #ifndef mitkHotspotMaskGenerator_h
14 #define mitkHotspotMaskGenerator_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 const itk::Image<unsigned short, VImageDimension>* maskImage,
155 template <
typename TPixel,
unsigned int VImageDimension >
156 ImageExtrema CalculateExtremaWorld(
const itk::Image<TPixel, VImageDimension>* inputImage,
157 const itk::Image<unsigned short, VImageDimension>* maskImage,
158 double neccessaryDistanceToImageBorderInMM,
161 bool IsUpdateRequired()
const;
169 itk::Image<unsigned short, 2>::ConstPointer m_internalMask2D;
170 itk::Image<unsigned short, 3>::ConstPointer m_internalMask3D;
171 double m_HotspotRadiusinMM;
172 bool m_HotspotMustBeCompletelyInsideImage;
173 unsigned short m_Label;
174 vnl_vector<int> m_ConvolutionImageMinIndex, m_ConvolutionImageMaxIndex;
175 unsigned long m_InternalMaskUpdateTime;