ITK
5.0.0
Insight Segmentation and Registration Toolkit
|
#include <itkGPUImage.h>
Templated n-dimensional image class for the GPU.
Derived from itk Image class to use with GPU image filters. This class manages both CPU and GPU memory implicitly, and can be used with non-GPU itk filters as well. Memory transfer between CPU and GPU is done automatically and implicitly.
Definition at line 40 of file itkGPUImage.h.
Public Types | |
using | AccessorFunctorType = DefaultPixelAccessorFunctor< Self > |
using | AccessorType = typename Superclass::AccessorType |
using | ConstPointer = SmartPointer< const Self > |
using | ConstWeakPointer = WeakPointer< const Self > |
using | DirectionType = typename Superclass::DirectionType |
using | IndexType = typename Superclass::IndexType |
using | InternalPixelType = typename Superclass::InternalPixelType |
using | IOPixelType = typename Superclass::IOPixelType |
using | NeighborhoodAccessorFunctorType = NeighborhoodAccessorFunctor< Self > |
using | OffsetType = typename Superclass::OffsetType |
using | PixelContainer = typename Superclass::PixelContainer |
using | PixelContainerConstPointer = typename PixelContainer::ConstPointer |
using | PixelContainerPointer = typename PixelContainer::Pointer |
using | PixelType = typename Superclass::PixelType |
using | Pointer = SmartPointer< Self > |
using | RegionType = typename Superclass::RegionType |
using | Self = GPUImage |
using | SizeType = typename Superclass::SizeType |
using | SpacingType = typename Superclass::SpacingType |
using | Superclass = Image< TPixel, VImageDimension > |
using | ValueType = typename Superclass::ValueType |
Public Types inherited from itk::Image< TPixel, VImageDimension > | |
using | AccessorFunctorType = DefaultPixelAccessorFunctor< Self > |
using | AccessorType = DefaultPixelAccessor< PixelType > |
using | ConstPointer = SmartPointer< const Self > |
using | ConstWeakPointer = WeakPointer< const Self > |
using | DirectionType = typename Superclass::DirectionType |
using | ImageDimensionType = typename Superclass::ImageDimensionType |
using | IndexType = typename Superclass::IndexType |
using | IndexValueType = typename Superclass::IndexValueType |
using | InternalPixelType = TPixel |
using | IOPixelType = PixelType |
using | NeighborhoodAccessorFunctorType = NeighborhoodAccessorFunctor< Self > |
using | OffsetType = typename Superclass::OffsetType |
using | OffsetValueType = typename Superclass::OffsetValueType |
using | PixelContainer = ImportImageContainer< SizeValueType, PixelType > |
using | PixelContainerConstPointer = typename PixelContainer::ConstPointer |
using | PixelContainerPointer = typename PixelContainer::Pointer |
using | PixelType = TPixel |
using | Pointer = SmartPointer< Self > |
using | PointType = typename Superclass::PointType |
template<typename UPixelType , unsigned int NUImageDimension = VImageDimension> | |
using | RebindImageType = itk::Image< UPixelType, NUImageDimension > |
using | RegionType = typename Superclass::RegionType |
using | Self = Image |
using | SizeType = typename Superclass::SizeType |
using | SizeValueType = typename Superclass::SizeValueType |
using | SpacingType = typename Superclass::SpacingType |
using | SpacingValueType = typename Superclass::SpacingValueType |
using | Superclass = ImageBase< VImageDimension > |
using | ValueType = TPixel |
Public Types inherited from itk::ImageBase< VImageDimension > | |
using | ConstPointer = SmartPointer< const Self > |
using | DirectionType = Matrix< SpacePrecisionType, VImageDimension, VImageDimension > |
using | ImageDimensionType = unsigned int |
using | IndexType = Index< VImageDimension > |
using | IndexValueType = typename IndexType::IndexValueType |
using | OffsetType = Offset< VImageDimension > |
using | OffsetValueType = typename OffsetType::OffsetValueType |
using | Pointer = SmartPointer< Self > |
using | PointType = Point< PointValueType, VImageDimension > |
using | PointValueType = SpacePrecisionType |
using | RegionType = ImageRegion< VImageDimension > |
using | Self = ImageBase |
using | SizeType = Size< VImageDimension > |
using | SizeValueType = typename SizeType::SizeValueType |
using | SpacingType = Vector< SpacingValueType, VImageDimension > |
using | SpacingValueType = SpacePrecisionType |
using | Superclass = DataObject |
Public Types inherited from itk::DataObject | |
using | ConstPointer = SmartPointer< const Self > |
using | DataObjectIdentifierType = std::string |
using | DataObjectPointerArraySizeType = std::vector< Pointer >::size_type |
using | Pointer = SmartPointer< Self > |
using | Self = DataObject |
using | Superclass = Object |
Public Types inherited from itk::Object | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = Object |
using | Superclass = LightObject |
Public Types inherited from itk::LightObject | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = LightObject |
Public Member Functions | |
void | Allocate (bool initialize=false) override |
virtual ::itk::LightObject::Pointer | CreateAnother () const |
void | DataHasBeenGenerated () override |
void | FillBuffer (const TPixel &value) |
TPixel * | GetBufferPointer () override |
const TPixel * | GetBufferPointer () const override |
int | GetCurrentCommandQueueID () |
virtual const GPUImageDataManager< GPUImage > * | GetDataManager () const |
GPUDataManager * | GetGPUDataManager () |
virtual GPUImageDataManager < GPUImage > * | GetModifiableDataManager () |
virtual const char * | GetNameOfClass () const |
const TPixel & | GetPixel (const IndexType &index) const |
TPixel & | GetPixel (const IndexType &index) |
PixelContainer * | GetPixelContainer () |
const PixelContainer * | GetPixelContainer () const |
virtual void | Graft (const Self *data) |
void | Initialize () override |
const TPixel & | operator[] (const IndexType &index) const |
TPixel & | operator[] (const IndexType &index) |
void | SetCurrentCommandQueue (int queueid) |
void | SetPixel (const IndexType &index, const TPixel &value) |
void | SetPixelContainer (PixelContainer *container) |
void | UpdateBuffers () |
AccessorType | GetPixelAccessor () |
const AccessorType | GetPixelAccessor () const |
NeighborhoodAccessorFunctorType | GetNeighborhoodAccessor () |
const NeighborhoodAccessorFunctorType | GetNeighborhoodAccessor () const |
Public Member Functions inherited from itk::Image< TPixel, VImageDimension > | |
void | FillBuffer (const TPixel &value) |
NeighborhoodAccessorFunctorType | GetNeighborhoodAccessor () |
const NeighborhoodAccessorFunctorType | GetNeighborhoodAccessor () const |
unsigned int | GetNumberOfComponentsPerPixel () const override |
const TPixel & | GetPixel (const IndexType &index) const |
TPixel & | GetPixel (const IndexType &index) |
AccessorType | GetPixelAccessor () |
const AccessorType | GetPixelAccessor () const |
PixelContainer * | GetPixelContainer () |
const PixelContainer * | GetPixelContainer () const |
TPixel & | operator[] (const IndexType &index) |
const TPixel & | operator[] (const IndexType &index) const |
void | SetPixel (const IndexType &index, const TPixel &value) |
void | SetPixelContainer (PixelContainer *container) |
Public Member Functions inherited from itk::ImageBase< VImageDimension > | |
OffsetValueType | ComputeOffset (const IndexType &ind) const |
void | CopyInformation (const DataObject *data) override |
virtual const RegionType & | GetBufferedRegion () const |
virtual const DirectionType & | GetDirection () const |
virtual const DirectionType & | GetInverseDirection () const |
virtual const RegionType & | GetLargestPossibleRegion () const |
virtual const PointType & | GetOrigin () const |
virtual const RegionType & | GetRequestedRegion () const |
virtual const SpacingType & | GetSpacing () const |
bool | RequestedRegionIsOutsideOfTheBufferedRegion () override |
virtual void | SetBufferedRegion (const RegionType ®ion) |
virtual void | SetDirection (const DirectionType &direction) |
virtual void | SetLargestPossibleRegion (const RegionType ®ion) |
virtual void | SetRegions (const SizeType &size) |
virtual void | SetRequestedRegion (const RegionType ®ion) |
void | SetRequestedRegion (const DataObject *data) override |
void | SetRequestedRegionToLargestPossibleRegion () override |
template<typename TCoordRep > | |
void | TransformLocalVectorToPhysicalVector (const FixedArray< TCoordRep, VImageDimension > &inputGradient, FixedArray< TCoordRep, VImageDimension > &outputGradient) const |
template<typename TCoordRep , typename TIndexRep > | |
bool | TransformPhysicalPointToContinuousIndex (const Point< TCoordRep, VImageDimension > &point, ContinuousIndex< TIndexRep, VImageDimension > &index) const |
template<typename TCoordRep > | |
void | TransformPhysicalVectorToLocalVector (const FixedArray< TCoordRep, VImageDimension > &inputGradient, FixedArray< TCoordRep, VImageDimension > &outputGradient) const |
void | UpdateOutputData () override |
void | UpdateOutputInformation () override |
bool | VerifyRequestedRegion () override |
virtual void | SetOrigin (PointType _arg) |
virtual void | SetOrigin (const double origin[VImageDimension]) |
virtual void | SetOrigin (const float origin[VImageDimension]) |
virtual void | SetRegions (const RegionType ®ion) |
const OffsetValueType * | GetOffsetTable () const |
IndexType | ComputeIndex (OffsetValueType offset) const |
virtual void | SetSpacing (const SpacingType &spacing) |
virtual void | SetSpacing (const double spacing[VImageDimension]) |
virtual void | SetSpacing (const float spacing[VImageDimension]) |
template<typename TCoordRep > | |
bool | TransformPhysicalPointToIndex (const Point< TCoordRep, VImageDimension > &point, IndexType &index) const |
template<typename TCoordRep , typename TIndexRep > | |
void | TransformContinuousIndexToPhysicalPoint (const ContinuousIndex< TIndexRep, VImageDimension > &index, Point< TCoordRep, VImageDimension > &point) const |
template<typename TCoordRep > | |
void | TransformIndexToPhysicalPoint (const IndexType &index, Point< TCoordRep, VImageDimension > &point) const |
virtual void | SetNumberOfComponentsPerPixel (unsigned int) |
Public Member Functions inherited from itk::DataObject | |
void | DisconnectPipeline () |
bool | GetDataReleased () const |
virtual const bool & | GetReleaseDataFlag () const |
SmartPointer< ProcessObject > | GetSource () const |
DataObjectPointerArraySizeType | GetSourceOutputIndex () const |
const DataObjectIdentifierType & | GetSourceOutputName () const |
virtual ModifiedTimeType | GetUpdateMTime () const |
virtual void | PrepareForNewData () |
virtual void | PropagateRequestedRegion () |
void | ReleaseData () |
virtual void | ReleaseDataFlagOff () |
virtual void | ReleaseDataFlagOn () |
virtual void | ResetPipeline () |
void | SetReleaseDataFlag (bool flag) |
bool | ShouldIReleaseData () const |
virtual void | Update () |
void | SetPipelineMTime (ModifiedTimeType time) |
virtual const ModifiedTimeType & | GetPipelineMTime () const |
virtual void | SetRealTimeStamp (RealTimeStamp _arg) |
virtual const RealTimeStamp & | GetRealTimeStamp () const |
Public Member Functions inherited from itk::Object | |
unsigned long | AddObserver (const EventObject &event, Command *) |
unsigned long | AddObserver (const EventObject &event, Command *) const |
virtual void | DebugOff () const |
virtual void | DebugOn () const |
Command * | GetCommand (unsigned long tag) |
bool | GetDebug () const |
MetaDataDictionary & | GetMetaDataDictionary () |
const MetaDataDictionary & | GetMetaDataDictionary () const |
virtual ModifiedTimeType | GetMTime () const |
virtual const TimeStamp & | GetTimeStamp () const |
bool | HasObserver (const EventObject &event) const |
void | InvokeEvent (const EventObject &) |
void | InvokeEvent (const EventObject &) const |
virtual void | Modified () const |
void | Register () const override |
void | RemoveAllObservers () |
void | RemoveObserver (unsigned long tag) |
void | SetDebug (bool debugFlag) const |
void | SetReferenceCount (int) override |
void | UnRegister () const noexceptoverride |
void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
void | SetMetaDataDictionary (MetaDataDictionary &&rrhs) |
virtual void | SetObjectName (std::string _arg) |
virtual const std::string & | GetObjectName () const |
Public Member Functions inherited from itk::LightObject | |
virtual void | Delete () |
virtual int | GetReferenceCount () const |
itkCloneMacro (Self) | |
void | Print (std::ostream &os, Indent indent=0) const |
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::Image< TPixel, VImageDimension > | |
static Pointer | New () |
Static Public Member Functions inherited from itk::ImageBase< VImageDimension > | |
static unsigned int | GetImageDimension () |
static Pointer | New () |
Static Public Member Functions inherited from itk::DataObject | |
static bool | GetGlobalReleaseDataFlag () |
static void | GlobalReleaseDataFlagOff () |
static void | GlobalReleaseDataFlagOn () |
static void | SetGlobalReleaseDataFlag (bool val) |
Static Public Member Functions inherited from itk::Object | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool flag) |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static constexpr unsigned int | ImageDimension = VImageDimension |
Static Public Attributes inherited from itk::ImageBase< VImageDimension > | |
static constexpr ImageDimensionType | ImageDimension = VImageDimension |
Protected Member Functions | |
GPUImage () | |
void | Graft (const DataObject *data) override |
~GPUImage () override | |
Protected Member Functions inherited from itk::Image< TPixel, VImageDimension > | |
void | ComputeIndexToPhysicalPointMatrices () override |
Image () | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
~Image () override=default | |
Protected Member Functions inherited from itk::ImageBase< VImageDimension > | |
void | ComputeOffsetTable () |
ImageBase () | |
virtual void | InitializeBufferedRegion () |
void | PrintSelf (std::ostream &os, Indent indent) const override |
~ImageBase () override=default | |
OffsetValueType | FastComputeOffset (const IndexType &ind) const |
IndexType | FastComputeIndex (OffsetValueType offset) const |
Protected Member Functions inherited from itk::DataObject | |
DataObject () | |
virtual void | PropagateResetPipeline () |
~DataObject () override | |
Protected Member Functions inherited from itk::Object | |
Object () | |
bool | PrintObservers (std::ostream &os, Indent indent) const |
void | PrintSelf (std::ostream &os, Indent indent) const override |
virtual void | SetTimeStamp (const TimeStamp &time) |
~Object () override | |
Protected Member Functions inherited from itk::LightObject | |
virtual LightObject::Pointer | InternalClone () const |
LightObject () | |
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
virtual | ~LightObject () |
Private Attributes | |
GPUImageDataManager< GPUImage > ::Pointer | m_DataManager |
Additional Inherited Members | |
Protected Attributes inherited from itk::ImageBase< VImageDimension > | |
DirectionType | m_Direction |
DirectionType | m_IndexToPhysicalPoint |
DirectionType | m_InverseDirection |
PointType | m_Origin |
DirectionType | m_PhysicalPointToIndex |
SpacingType | m_Spacing |
Protected Attributes inherited from itk::LightObject | |
std::atomic< int > | m_ReferenceCount |
using itk::GPUImage< TPixel, VImageDimension >::AccessorFunctorType = DefaultPixelAccessorFunctor< Self > |
Definition at line 72 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::AccessorType = typename Superclass::AccessorType |
Definition at line 70 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::ConstPointer = SmartPointer<const Self> |
Definition at line 48 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::ConstWeakPointer = WeakPointer<const Self> |
Definition at line 49 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::DirectionType = typename Superclass::DirectionType |
Definition at line 61 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::IndexType = typename Superclass::IndexType |
Definition at line 65 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::InternalPixelType = typename Superclass::InternalPixelType |
Definition at line 59 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::IOPixelType = typename Superclass::IOPixelType |
Definition at line 60 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::NeighborhoodAccessorFunctorType = NeighborhoodAccessorFunctor< Self > |
Definition at line 74 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::OffsetType = typename Superclass::OffsetType |
Definition at line 66 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::PixelContainer = typename Superclass::PixelContainer |
Definition at line 63 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::PixelContainerConstPointer = typename PixelContainer::ConstPointer |
Definition at line 69 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::PixelContainerPointer = typename PixelContainer::Pointer |
Definition at line 68 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::PixelType = typename Superclass::PixelType |
Definition at line 57 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::Pointer = SmartPointer<Self> |
Definition at line 47 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::RegionType = typename Superclass::RegionType |
Definition at line 67 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::Self = GPUImage |
Definition at line 45 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::SizeType = typename Superclass::SizeType |
Definition at line 64 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::SpacingType = typename Superclass::SpacingType |
Definition at line 62 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::Superclass = Image<TPixel,VImageDimension> |
Definition at line 46 of file itkGPUImage.h.
using itk::GPUImage< TPixel, VImageDimension >::ValueType = typename Superclass::ValueType |
Definition at line 58 of file itkGPUImage.h.
|
protected |
|
overrideprotected |
|
overridevirtual |
Allocate the image memory. The size of the image must already be set, e.g. by calling SetRegions().
Reimplemented from itk::Image< TPixel, VImageDimension >.
|
virtual |
Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.
Reimplemented from itk::Image< TPixel, VImageDimension >.
|
inlineoverridevirtual |
Inform the pipeline mechanism that data has been generated. This method is called by ProcessObject::UpdateOutputData() once the process object has finished generating its data. This essentially marks the DataObject as being updated and ready for use.
Reimplemented from itk::DataObject.
Definition at line 173 of file itkGPUImage.h.
void itk::GPUImage< TPixel, VImageDimension >::FillBuffer | ( | const TPixel & | value | ) |
|
overridevirtual |
Return a pointer to the beginning of the buffer. This is used by the image iterator class.
Reimplemented from itk::Image< TPixel, VImageDimension >.
|
overridevirtual |
Return a pointer to the beginning of the buffer. This is used by the image iterator class.
Reimplemented from itk::Image< TPixel, VImageDimension >.
|
inline |
Definition at line 159 of file itkGPUImage.h.
|
virtual |
GPUDataManager* itk::GPUImage< TPixel, VImageDimension >::GetGPUDataManager | ( | ) |
|
virtual |
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::Image< TPixel, VImageDimension >.
|
inline |
Return the NeighborhoodAccessor functor
Definition at line 123 of file itkGPUImage.h.
|
inline |
Return the NeighborhoodAccessor functor
Definition at line 132 of file itkGPUImage.h.
const TPixel& itk::GPUImage< TPixel, VImageDimension >::GetPixel | ( | const IndexType & | index | ) | const |
TPixel& itk::GPUImage< TPixel, VImageDimension >::GetPixel | ( | const IndexType & | index | ) |
|
inline |
Return the Pixel Accessor object
Definition at line 107 of file itkGPUImage.h.
|
inline |
Return the Pixel Accesor object
Definition at line 115 of file itkGPUImage.h.
|
inline |
Return a pointer to the container.
Definition at line 143 of file itkGPUImage.h.
|
inline |
Definition at line 148 of file itkGPUImage.h.
|
virtual |
Graft the data and information from one GPUImage to another.
Reimplemented from itk::Image< TPixel, VImageDimension >.
|
overrideprotectedvirtual |
Graft the data and information from one image to another. This is a convenience method to setup a second image with all the meta information of another image and use the same pixel container. Note that this method is different than just using two SmartPointers to the same image since separate DataObjects are still maintained. This method is similar to ImageSource::GraftOutput(). The implementation in ImageBase simply calls CopyInformation() and copies the region ivars. The implementation here refers to the superclass' implementation and then copies over the pixel container.
Reimplemented from itk::Image< TPixel, VImageDimension >.
|
overridevirtual |
Restore the data object to its initial state. This means releasing memory.
Reimplemented from itk::Image< TPixel, VImageDimension >.
|
static |
const TPixel& itk::GPUImage< TPixel, VImageDimension >::operator[] | ( | const IndexType & | index | ) | const |
TPixel& itk::GPUImage< TPixel, VImageDimension >::operator[] | ( | const IndexType & | index | ) |
|
inline |
Definition at line 154 of file itkGPUImage.h.
void itk::GPUImage< TPixel, VImageDimension >::SetPixel | ( | const IndexType & | index, |
const TPixel & | value | ||
) |
void itk::GPUImage< TPixel, VImageDimension >::SetPixelContainer | ( | PixelContainer * | container | ) |
void itk::GPUImage< TPixel, VImageDimension >::UpdateBuffers | ( | ) |
Explicit synchronize CPU/GPU buffers
|
static |
Definition at line 55 of file itkGPUImage.h.
|
private |
Definition at line 192 of file itkGPUImage.h.