18#ifndef itkImageAdaptor_h
19#define itkImageAdaptor_h
26template <
typename TPixelType,
unsigned int VImageDimension>
55template <
typename TImage,
typename TAccessor>
137 template <
typename UPixelType,
unsigned int UImageDimension = TImage::ImageDimension>
143 template <
typename UPixelType,
unsigned int VUImageDimension = TImage::ImageDimension>
251 return m_Image->GetPixelContainer();
254 const PixelContainer *
257 return m_Image->GetPixelContainer();
278#ifndef ITK_FUTURE_LEGACY_REMOVE
280 using InternalPixelPointerType [[deprecated(
"Please just use `InternalPixelType *` instead!")]] =
InternalPixelType *;
391 template <
typename TIndexRep,
typename TCoordinate>
406 template <
typename TCoordinate>
407 ITK_NODISCARD(
"Call the overload which has the point as the only parameter and returns the index")
411 return m_Image->TransformPhysicalPointToContinuousIndex(
point, index);
415 template <
typename TCoordinate>
416 [[nodiscard]] IndexType
430 template <
typename TCoordinate>
431 ITK_NODISCARD(
"Call the overload which has the point as the only parameter and returns the index")
434 return m_Image->TransformPhysicalPointToIndex(
point, index);
441 template <
typename TCoordinate>
446 m_Image->TransformContinuousIndexToPhysicalPoint(index,
point);
450 template <
typename TCoordinate,
typename TIndexRep>
462 template <
typename TCoordinate>
470 template <
typename TCoordinate>
477 template <
typename TCoordinate>
482 m_Image->TransformLocalVectorToPhysicalVector(inputGradient, outputGradient);
485 template <
typename TVector>
486 [[nodiscard]] TVector
489 TVector outputGradient;
491 return outputGradient;
494 template <
typename TCoordinate>
499 m_Image->TransformPhysicalVectorToLocalVector(inputGradient, outputGradient);
502 template <
typename TVector>
503 [[nodiscard]] TVector
506 TVector outputGradient;
508 return outputGradient;
523 template <
typename TPixelType>
531 template <
typename T>
546#ifndef ITK_MANUAL_INSTANTIATION
547# include "itkImageAdaptor.hxx"
A templated class holding a point in n-Dimensional image space.
Base class for all data objects in ITK.
Simulate a standard C array with copy semantics.
void SetOrigin(const float *origin) override
void CopyInformation(const DataObject *data) override
typename InternalImageType::AccessorFunctorType::template Rebind< Self >::Type AccessorFunctorType
static constexpr unsigned int ImageDimension
typename OffsetType::OffsetValueType OffsetValueType
void SetOrigin(const double *origin) override
void SetPixelContainer(PixelContainer *container)
SmartPointer< Self > Pointer
const PointType & GetOrigin() const override
void Modified() const override
ImageBase< Self::ImageDimension > Superclass
void SetPixel(const IndexType &index, const PixelType &value)
void Initialize() override
PixelContainerPointer GetPixelContainer()
void SetRequestedRegion(const DataObject *data) override
typename TImage::PixelContainerPointer PixelContainerPointer
typename SizeType::SizeValueType SizeValueType
void TransformPhysicalVectorToLocalVector(const FixedArray< TCoordinate, Self::ImageDimension > &inputGradient, FixedArray< TCoordinate, Self::ImageDimension > &outputGradient) const
void PropagateRequestedRegion() override
void SetRequestedRegion(const RegionType ®ion) override
void UpdateAccessor(T *dummy)
const PixelContainer * GetPixelContainer() const
AccessorType m_PixelAccessor
PixelType operator[](const IndexType &index) const
typename IndexType::IndexValueType IndexValueType
void TransformLocalVectorToPhysicalVector(const FixedArray< TCoordinate, Self::ImageDimension > &inputGradient, FixedArray< TCoordinate, Self::ImageDimension > &outputGradient) const
const DirectionType & GetDirection() const override
bool VerifyRequestedRegion() override
void UpdateOutputInformation() override
void UpdateAccessor(typename itk::VectorImage< TPixelType, ImageDimension > *dummy)
void SetSpacing(const SpacingType &spacing) override
void TransformIndexToPhysicalPoint(const IndexType &index, Point< TCoordinate, Self::ImageDimension > &point) const
void SetBufferedRegion(const RegionType ®ion) override
void SetSpacing(const double *spacing) override
Point< TCoordinate, TImage::ImageDimension > TransformContinuousIndexToPhysicalPoint(const ContinuousIndex< TIndexRep, Self::ImageDimension > &index) const
void SetDirection(const DirectionType &direction) override
TVector TransformPhysicalVectorToLocalVector(const TVector &inputGradient) const
ModifiedTimeType GetMTime() const override
void UpdateOutputData() override
itk::Image< UPixelType, VUImageDimension > RebindImageType
AccessorType & GetPixelAccessor()
const AccessorType & GetPixelAccessor() const
void TransformContinuousIndexToPhysicalPoint(const ContinuousIndex< TCoordinate, Self::ImageDimension > &index, Point< TCoordinate, Self::ImageDimension > &point) const
TVector TransformLocalVectorToPhysicalVector(const TVector &inputGradient) const
typename Accessor::AbsPixelAccessor< typename TImage::PixelType, TOutputPixelType >::ExternalType PixelType
void Allocate(bool initialize=false) override
void SetPixelAccessor(const AccessorType &accessor)
const RegionType & GetLargestPossibleRegion() const override
void SetRequestedRegionToLargestPossibleRegion() override
Point< TCoordinate, Self::ImageDimension > TransformIndexToPhysicalPoint(const IndexType &index) const
Accessor::AbsPixelAccessor< typename TImage::PixelType, TOutputPixelType > AccessorType
IndexType TransformPhysicalPointToIndex(const Point< TCoordinate, Self::ImageDimension > &point) const
void SetOrigin(const PointType origin) override
~ImageAdaptor() override=default
SmartPointer< const Self > ConstPointer
void PrintSelf(std::ostream &os, Indent indent) const override
typename TImage::PixelContainer PixelContainer
void SetSpacing(const float *spacing) override
const OffsetValueType * GetOffsetTable() const
PixelType GetPixel(const IndexType &index) const
void SetLargestPossibleRegion(const RegionType ®ion) override
const InternalPixelType * GetBufferPointer() const
virtual void SetImage(TImage *)
const RegionType & GetRequestedRegion() const override
IndexType ComputeIndex(OffsetValueType offset) const
const SpacingType & GetSpacing() const override
WeakPointer< const Self > ConstWeakPointer
void Graft(const DataObject *data) override
ContinuousIndex< TIndexRep, TImage::ImageDimension > TransformPhysicalPointToContinuousIndex(const Point< TCoordinate, TImage::ImageDimension > &point) const
typename TImage::PixelContainerConstPointer PixelContainerConstPointer
InternalPixelType * GetBufferPointer()
virtual void Graft(const Self *imgData)
const RegionType & GetBufferedRegion() const override
typename Accessor::AbsPixelAccessor< typename TImage::PixelType, TOutputPixelType >::InternalType InternalPixelType
Vector< SpacingValueType, VImageDimension > SpacingType
ImageRegion< VImageDimension > RegionType
Index< VImageDimension > IndexType
Offset< VImageDimension > OffsetType
virtual void Graft(const Self *image)
Matrix< SpacePrecisionType, VImageDimension, VImageDimension > DirectionType
Size< VImageDimension > SizeType
Point< PointValueType, VImageDimension > PointType
Templated n-dimensional image class.
Control indentation during Print() invocation.
A templated class holding a geometric point in n-Dimensional space.
Implements transparent reference counting.
Templated n-dimensional vector image class.
Implements a weak reference to an object.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
*par Constraints *The filter image with at least two dimensions and a vector *length of at least The theory supports extension to scalar but *the implementation of the itk vector classes do not **The template parameter TRealType must be floating point(float or double) or *a user-defined "real" numerical type with arithmetic operations defined *sufficient to compute derivatives. **\par Performance *This filter will automatically multithread if run with *SetUsePrincipleComponents
SizeValueType ModifiedTimeType
Image< UPixelType, UImageDimension > Type
itk::IndexValueType IndexValueType
itk::OffsetValueType OffsetValueType
itk::SizeValueType SizeValueType