13 #ifndef mitkCreateDistanceImageFromSurfaceFilter_h
14 #define mitkCreateDistanceImageFromSurfaceFilter_h
22 #include <vnl/vnl_vector_fixed.h>
24 #include <itkImageBase.h>
26 #include <itkeigen/Eigen/Dense>
66 itkFactorylessNewMacro(Self);
68 itkGetMacro(DistanceImageSpacing,
double);
70 using Superclass::SetInput;
88 itkSetMacro(DistanceImageVolume,
unsigned int);
118 void CreateSolutionMatrixAndFunctionValues();
119 double CalculateDistanceValue(
PointType p);
121 void FillDistanceImage();
137 void DetermineBounds(DistanceImageType::PointType &minPointInWorldCoordinates,
138 DistanceImageType::PointType &maxPointInWorldCoordinates,
139 DistanceImageType::IndexType &minPointInIndexCoordinates,
140 DistanceImageType::IndexType &maxPointInIndexCoordinates);
142 void PreprocessContourPoints();
143 void CreateEmptyDistanceImage();
149 Eigen::MatrixXd m_SolutionMatrix;
150 Eigen::VectorXd m_FunctionValues;
151 Eigen::VectorXd m_Weights;
153 DistanceImageType::Pointer m_DistanceImageITK;
154 itk::ImageBase<3>::Pointer m_ReferenceImage;
156 double m_DistanceImageSpacing;
157 double m_DistanceImageDefaultBufferValue;
158 unsigned int m_DistanceImageVolume;
160 bool m_UseProgressBar;
161 unsigned int m_ProgressStepSize;
#define MITKSURFACEINTERPOLATION_EXPORT
Filter that creates a distance image from contour surface points using Radial Basis Function interpol...
virtual void SetInput(unsigned int idx, const mitk::Surface *surface)
itk::Image< double, 3 > DistanceImageType
virtual const mitk::Surface * GetInput(unsigned int idx)
mitkClassMacro(CreateDistanceImageFromSurfaceFilter, ImageSource)
std::vector< Surface::Pointer > SurfaceList
virtual void RemoveInputs(mitk::Surface *input)
CreateDistanceImageFromSurfaceFilter()
void GenerateOutputInformation() override
void GenerateData() override
virtual const mitk::Surface * GetInput()
std::vector< PointType > CenterList
void PrintEquationSystem()
void SetReferenceImage(itk::ImageBase< 3 >::Pointer referenceImage)
std::vector< PointType > NormalList
vnl_vector_fixed< double, 3 > PointType
virtual void SetInput(const mitk::Surface *surface)
~CreateDistanceImageFromSurfaceFilter() override
DistanceImageType::IndexType IndexType
void SetProgressStepSize(unsigned int stepSize)
Set the stepsize which the progress bar should proceed.
void SetUseProgressBar(bool)
Set whether the mitkProgressBar should be used.
Superclass of all classes generating Images (instances of class Image) as output.
Data class for storing polygonal surfaces (vtkPolyData).
Find image slices visible on a given plane.