13 #ifndef mitkCreateDistanceImageFromSurfaceFilter_h_Included 14 #define mitkCreateDistanceImageFromSurfaceFilter_h_Included 22 #include "vnl/vnl_vector_fixed.h" 24 #include "itkImageBase.h" 26 #include <Eigen/Dense> 78 itkFactorylessNewMacro(
Self);
80 itkGetMacro(DistanceImageSpacing,
double);
82 using Superclass::SetInput;
87 virtual void SetInput(
unsigned int idx,
const mitk::Surface *surface);
100 itkSetMacro(DistanceImageVolume,
unsigned int);
102 void PrintEquationSystem();
112 void SetUseProgressBar(
bool);
119 void SetProgressStepSize(
unsigned int stepSize);
121 void SetReferenceImage(itk::ImageBase<3>::Pointer referenceImage);
126 void GenerateData()
override;
127 void GenerateOutputInformation()
override;
130 void CreateSolutionMatrixAndFunctionValues();
131 double CalculateDistanceValue(PointType p);
133 void FillDistanceImage();
149 void DetermineBounds(DistanceImageType::PointType &minPointInWorldCoordinates,
150 DistanceImageType::PointType &maxPointInWorldCoordinates,
151 DistanceImageType::IndexType &minPointInIndexCoordinates,
152 DistanceImageType::IndexType &maxPointInIndexCoordinates);
154 void PreprocessContourPoints();
155 void CreateEmptyDistanceImage();
158 CenterList m_Centers;
159 NormalList m_Normals;
161 Eigen::MatrixXd m_SolutionMatrix;
162 Eigen::VectorXd m_FunctionValues;
163 Eigen::VectorXd m_Weights;
165 DistanceImageType::Pointer m_DistanceImageITK;
166 itk::ImageBase<3>::Pointer m_ReferenceImage;
168 double m_DistanceImageSpacing;
169 double m_DistanceImageDefaultBufferValue;
170 unsigned int m_DistanceImageVolume;
172 bool m_UseProgressBar;
173 unsigned int m_ProgressStepSize;
Superclass of all classes generating Images (instances of class Image) as output. ...
Class for storing surfaces (vtkPolyData).
DistanceImageType::IndexType IndexType
Superclass of all classes generating some kind of mitk::BaseData.
DataCollection - Class to facilitate loading/accessing structured data.
std::vector< PointType > NormalList
#define MITKSURFACEINTERPOLATION_EXPORT
std::vector< PointType > CenterList
#define mitkClassMacro(className, SuperClassName)
This filter interpolates the 3D surface for a segmented area. The basis for the interpolation are the...
itk::Image< double, 3 > DistanceImageType
vnl_vector_fixed< double, 3 > PointType
std::vector< Surface::Pointer > SurfaceList