18#ifndef itkBSplineControlPointImageFilter_h
19#define itkBSplineControlPointImageFilter_h
30#include "vnl/vnl_matrix.h"
31#include "vnl/vnl_vector.h"
58template <
typename TInputImage,
typename TOutputImage = TInputImage>
76 static constexpr unsigned int ImageDimension = TInputImage::ImageDimension;
82 using PixelType =
typename OutputImageType::PixelType;
248 bool m_DoMultilevel{
false };
249 unsigned int m_MaximumNumberOfLevels{ 1 };
255 vnl_matrix<RealType> m_RefinedLatticeCoefficients[ImageDimension]{};
271 for (
unsigned int i = 1; i < ImageDimension; ++i)
273 k[i] = size[ImageDimension - i - 1] * k[i - 1];
276 for (
unsigned int i = 0; i < ImageDimension; ++i)
278 index[ImageDimension - i - 1] =
static_cast<unsigned int>(number / k[ImageDimension - i - 1]);
279 number %= k[ImageDimension - i - 1];
287#ifndef ITK_MANUAL_INSTANTIATION
288# include "itkBSplineControlPointImageFilter.hxx"
Process a given a B-spline grid of control points.
void BeforeThreadedGenerateData() override
void PrintSelf(std::ostream &os, Indent indent) const override
void SetSplineOrder(unsigned int)
TOutputImage OutputImageType
typename OutputImageType::SpacingType SpacingType
unsigned int SplitRequestedRegion(unsigned int, unsigned int, OutputImageRegionType &) override
BSplineControlPointImageFilter()
void CollapsePhiLattice(PointDataImageType *, PointDataImageType *, const RealType, const unsigned int)
typename OutputImageType::DirectionType DirectionType
typename OutputImageType::PointType PointType
~BSplineControlPointImageFilter() override=default
RealImageType::IndexType NumberToIndex(unsigned int number, typename RealImageType::SizeType size)
typename OutputImageType::RegionType OutputImageRegionType
typename OutputImageType::PointType OriginType
typename RealImageType::Pointer RealImagePointer
TInputImage ControlPointLatticeType
void SetNumberOfLevels(ArrayType)
ControlPointLatticeType::Pointer RefineControlPointLattice(ArrayType)
typename OutputImageType::SizeType SizeType
typename PointSetType::PointDataContainer PointDataContainerType
typename OutputImageType::PixelType PixelType
void DynamicThreadedGenerateData(const OutputImageRegionType &) override
typename OutputImageType::RegionType RegionType
typename OutputImageType::IndexType IndexType
typename PointSetType::PixelType PointDataType
void SetSplineOrder(ArrayType)
typename PointDataImageType::Pointer PointDataImagePointer
BSpline kernel used for density estimation and nonparametric regression.
BSpline kernel used for density estimation and nonparametric regression.
Base class for filters that take an image as input and produce an image as output.
Templated n-dimensional image class.
Control indentation during Print() invocation.
Light weight base class for most itk classes.
A superclass of the N-dimensional mesh structure; supports point (geometric coordinate and attribute)...
typename MeshTraits::PixelType PixelType
typename MeshTraits::PointDataContainer PointDataContainer
SmartPointer< Self > Pointer
ImageBaseType::DirectionType DirectionType
ImageBaseType::RegionType RegionType
ImageBaseType::IndexType IndexType
ImageBaseType::PointType PointType
ImageBaseType::SizeType SizeType
static constexpr double e
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Represent a n-dimensional size (bounds) of a n-dimensional image.