13 #ifndef mitkCreateDistanceImageFromSurfaceFilter_h
14 #define mitkCreateDistanceImageFromSurfaceFilter_h
22 #include "vnl/vnl_vector_fixed.h"
24 #include "itkImageBase.h"
26 #include <itkeigen/Eigen/Dense>
78 itkFactorylessNewMacro(
Self);
80 itkGetMacro(DistanceImageSpacing,
double);
82 using Superclass::SetInput;
100 itkSetMacro(DistanceImageVolume,
unsigned int);
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();
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;
#define MITKSURFACEINTERPOLATION_EXPORT
This filter interpolates the 3D surface for a segmented area. The basis for the interpolation are the...
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.
Class for storing surfaces (vtkPolyData).
Find image slices visible on a given plane.