18 #ifndef itkBSplineScatteredDataPointSetToImageFilter_h
19 #define itkBSplineScatteredDataPointSetToImageFilter_h
27 #include "vnl/vnl_matrix.h"
128 template<
typename TInputPo
intSet,
typename TOutputImage >
148 static constexpr
unsigned int ImageDimension = TOutputImage::ImageDimension;
190 void SetSplineOrder(
unsigned int );
195 void SetSplineOrder(
const ArrayType & );
200 itkGetConstReferenceMacro( SplineOrder,
ArrayType );
206 itkSetMacro( NumberOfControlPoints,
ArrayType );
207 itkGetConstReferenceMacro( NumberOfControlPoints,
ArrayType );
214 itkGetConstReferenceMacro( CurrentNumberOfControlPoints,
ArrayType );
220 void SetNumberOfLevels(
unsigned int );
226 void SetNumberOfLevels(
const ArrayType & );
232 itkGetConstReferenceMacro( NumberOfLevels,
ArrayType );
240 itkSetMacro( BSplineEpsilon,
RealType );
241 itkGetConstMacro( BSplineEpsilon,
RealType );
260 itkSetMacro( CloseDimension,
ArrayType );
261 itkGetConstReferenceMacro( CloseDimension,
ArrayType );
271 itkSetMacro( GenerateOutputImage,
bool );
272 itkGetConstReferenceMacro( GenerateOutputImage,
bool );
273 itkBooleanMacro( GenerateOutputImage );
286 void PrintSelf(std::ostream & os,
Indent indent)
const override;
292 itkExceptionMacro(
"This class requires threadId so it must use classic multi-threading model");
295 void BeforeThreadedGenerateData()
override;
297 void AfterThreadedGenerateData()
override;
299 unsigned int SplitRequestedRegion(
unsigned int,
unsigned int,
RegionType & )
override;
301 void GenerateData()
override;
307 void RefineControlPointLattice();
310 void UpdatePointSet();
314 void GenerateOutputImage();
324 void CollapsePhiLattice( PointDataImageType *, PointDataImageType *,
325 const RealType,
const unsigned int );
329 void SetPhiLatticeParametricDomainParameters();
335 bool m_DoMultilevel{
false };
336 bool m_GenerateOutputImage{
true };
337 bool m_UsePointWeights{
false };
338 unsigned int m_MaximumNumberOfLevels{ 1 };
339 unsigned int m_CurrentLevel{ 0 };
351 vnl_matrix<RealType> m_RefinedLatticeCoefficients[ImageDimension];
367 bool m_IsFittingComplete{
false };
371 #ifndef ITK_MANUAL_INSTANTIATION
372 #include "itkBSplineScatteredDataPointSetToImageFilter.hxx"
ArrayType m_CurrentNumberOfControlPoints
KernelOrder1Type::Pointer m_KernelOrder1
PointDataContainerType::Pointer m_InputPointData
typename PointDataImageType::Pointer PointDataImagePointer
typename ImageType::IndexType IndexType
KernelOrder3Type::Pointer m_KernelOrder3
PointDataImagePointer GetPhiLattice()
PointDataImageType::Pointer m_PsiLattice
ArrayType m_NumberOfControlPoints
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
ArrayType m_CloseDimension
Base class for all process objects that output image data.
PointDataContainerType::Pointer m_OutputPointData
BSpline kernel used for density estimation and nonparameteric regression.
typename ImageType::PixelType PixelType
typename TOutputImage::PointType PointType
KernelOrder0Type::Pointer m_KernelOrder0
std::vector< PointDataImagePointer > m_DeltaLatticePerThread
PointDataImageType::Pointer m_PhiLattice
typename RealImageType::Pointer RealImagePointer
ImageBaseType::SizeType SizeType
BSpline kernel used for density estimation and nonparameteric regression.
typename OutputImageType::RegionType OutputImageRegionType
ImageBaseType::IndexType IndexType
KernelOrder2Type::Pointer m_KernelOrder2
Image filter which provides a B-spline output approximation.
typename TOutputImage::SizeType SizeType
unsigned int ThreadIdType
typename ImageType::RegionType RegionType
Base class for filters that take a PointSet as input and produce an image as output. By default, if the user does not specify the size of the output image, the maximum size of the point-set's bounding box is used.
typename PointSetType::PixelType PointDataType
static constexpr double e
The base of the natural logarithm or Euler's number
TInputPointSet PointSetType
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.
ArrayType m_NumberOfLevels
typename PointSetType::Pointer PointSetPointer
Control indentation during Print() invocation.
ImageBaseType::PointType PointType
std::vector< RealImagePointer > m_OmegaLatticePerThread
WeightsContainerType::Pointer m_PointWeights
ImageBaseType::RegionType RegionType
Templated n-dimensional image class.
void DynamicThreadedGenerateData(const RegionType &) override
typename PointSetType::PointDataContainer PointDataContainerType
DataObject * GetOutput(const DataObjectIdentifierType &key)