ITK
6.0.0
Insight Toolkit
|
#include <itkGPUFiniteDifferenceImageFilter.h>
Base class for GPU Finite Difference Image Filters.
Definition at line 40 of file itkGPUFiniteDifferenceImageFilter.h.
Public Types | |
using | ConstPointer = SmartPointer< const Self > |
using | CPUSuperclass = TParentImageFilter |
using | FiniteDifferenceFunctionType = typename GPUFiniteDifferenceFunction< TOutputImage >::DifferenceFunctionType |
using | GPUSuperclass = GPUInPlaceImageFilter< TInputImage, TOutputImage, TParentImageFilter > |
using | InputImageType = TInputImage |
using | InputPixelType = typename TInputImage::PixelType |
using | InputPixelValueType = typename NumericTraits< InputPixelType >::ValueType |
using | NeighborhoodScalesType = typename FiniteDifferenceFunctionType::NeighborhoodScalesType |
using | OutputImageType = TOutputImage |
using | OutputPixelType = typename TOutputImage::PixelType |
using | OutputPixelValueType = typename NumericTraits< OutputPixelType >::ValueType |
using | PixelType = OutputPixelType |
using | Pointer = SmartPointer< Self > |
using | RadiusType = typename FiniteDifferenceFunctionType::RadiusType |
using | Self = GPUFiniteDifferenceImageFilter |
using | TimeStepType = typename FiniteDifferenceFunctionType::TimeStepType |
Public Types inherited from itk::GPUInPlaceImageFilter< TInputImage, TOutputImage, TParentImageFilter > | |
using | ConstPointer = SmartPointer< const Self > |
using | CPUSuperclass = TParentImageFilter |
using | GPUSuperclass = GPUImageToImageFilter< TInputImage, TOutputImage, TParentImageFilter > |
using | InputImageConstPointer = typename InputImageType::ConstPointer |
using | InputImagePixelType = typename InputImageType::PixelType |
using | InputImagePointer = typename InputImageType::Pointer |
using | InputImageRegionType = typename InputImageType::RegionType |
using | InputImageType = TInputImage |
using | OutputImagePixelType = typename GPUSuperclass::OutputImagePixelType |
using | OutputImagePointer = typename GPUSuperclass::OutputImagePointer |
using | OutputImageRegionType = typename GPUSuperclass::OutputImageRegionType |
using | OutputImageType = typename GPUSuperclass::OutputImageType |
using | Pointer = SmartPointer< Self > |
using | Self = GPUInPlaceImageFilter |
Public Types inherited from itk::GPUImageToImageFilter< TInputImage, TOutputImage, TParentImageFilter > | |
using | ConstPointer = SmartPointer< const Self > |
using | InputImageConstPointer = typename InputImageType::ConstPointer |
using | InputImagePixelType = typename InputImageType::PixelType |
using | InputImagePointer = typename InputImageType::Pointer |
using | InputImageRegionType = typename InputImageType::RegionType |
using | InputImageType = TInputImage |
using | Pointer = SmartPointer< Self > |
using | Self = GPUImageToImageFilter |
using | Superclass = TParentImageFilter |
Public Member Functions | |
const FiniteDifferenceFunctionType::Pointer & | GetDifferenceFunction () const override |
const char * | GetNameOfClass () const override |
void | SetStateToInitialized () |
void | SetStateToUninitialized () |
void | SetDifferenceFunction (FiniteDifferenceFunctionType *differenceFunction) override |
virtual void | SetState (GPUFiniteDifferenceFilterEnum _arg) |
virtual const GPUFiniteDifferenceFilterEnum & | GetState () const |
virtual const TimeProbe & | GetInitTime () const |
virtual const TimeProbe & | GetComputeUpdateTime () const |
virtual const TimeProbe & | GetApplyUpdateTime () const |
virtual const TimeProbe & | GetSmoothFieldTime () const |
Public Member Functions inherited from itk::GPUInPlaceImageFilter< TInputImage, TOutputImage, TParentImageFilter > | |
const char * | GetNameOfClass () const override |
Public Member Functions inherited from itk::GPUImageToImageFilter< TInputImage, TOutputImage, TParentImageFilter > | |
void | GenerateData () override |
virtual bool | GetGPUEnabled () const |
const char * | GetNameOfClass () const override |
virtual void | GPUEnabledOn () |
virtual void | GraftOutput (const DataObjectIdentifierType &key, typename itk::GPUTraits< TOutputImage >::Type *output) |
virtual void | GraftOutput (typename itk::GPUTraits< TOutputImage >::Type *output) |
virtual void | SetGPUEnabled (bool _arg) |
Static Public Attributes | |
static constexpr unsigned int | ImageDimension = OutputImageType::ImageDimension |
Static Public Attributes inherited from itk::GPUInPlaceImageFilter< TInputImage, TOutputImage, TParentImageFilter > | |
static constexpr unsigned int | InputImageDimension = TInputImage::ImageDimension |
static constexpr unsigned int | OutputImageDimension = TOutputImage::ImageDimension |
Static Public Attributes inherited from itk::GPUImageToImageFilter< TInputImage, TOutputImage, TParentImageFilter > | |
static constexpr unsigned int | InputImageDimension = TInputImage::ImageDimension |
static constexpr unsigned int | OutputImageDimension = TOutputImage::ImageDimension |
Protected Member Functions | |
void | AllocateUpdateBuffer () override=0 |
void | CopyInputToOutput () override=0 |
void | GenerateInputRequestedRegion () override |
virtual void | GPUApplyUpdate (const TimeStepType &dt)=0 |
virtual TimeStepType | GPUCalculateChange ()=0 |
GPUFiniteDifferenceImageFilter () | |
void | GPUGenerateData () override |
bool | Halt () override |
void | Initialize () override |
void | InitializeIteration () override |
void | PostProcessOutput () override |
void | PrintSelf (std::ostream &os, Indent indent) const override |
TimeStepType | ResolveTimeStep (const std::vector< TimeStepType > &timeStepList, const BooleanStdVectorType &valid) const override |
bool | ThreadedHalt (void *) override |
~GPUFiniteDifferenceImageFilter () override | |
Protected Member Functions inherited from itk::GPUInPlaceImageFilter< TInputImage, TOutputImage, TParentImageFilter > | |
void | AllocateOutputs () override |
GPUInPlaceImageFilter () | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
~GPUInPlaceImageFilter () override | |
void | ReleaseInputs () override |
Protected Member Functions inherited from itk::GPUImageToImageFilter< TInputImage, TOutputImage, TParentImageFilter > | |
GPUImageToImageFilter () | |
void | GraftOutput (const DataObjectIdentifierType &key, DataObject *output) override |
void | GraftOutput (DataObject *output) override |
void | PrintSelf (std::ostream &os, Indent indent) const override |
~GPUImageToImageFilter () override | |
Protected Attributes | |
TimeProbe | m_ApplyUpdateTime |
TimeProbe | m_ComputeUpdateTime |
TimeProbe | m_InitTime |
TimeProbe | m_SmoothFieldTime {} |
Protected Attributes inherited from itk::GPUImageToImageFilter< TInputImage, TOutputImage, TParentImageFilter > | |
GPUKernelManager::Pointer | m_GPUKernelManager {} |
Private Member Functions | |
void | InitializeFunctionCoefficients () |
Private Attributes | |
FiniteDifferenceFunctionType::Pointer | m_DifferenceFunction {} |
GPUFiniteDifferenceFilterEnum | m_State {} |
bool | m_UseImageSpacing {} |
Additional Inherited Members | |
Static Public Member Functions inherited from itk::GPUImageToImageFilter< TInputImage, TOutputImage, TParentImageFilter > | |
static Pointer | New () |
using itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::ConstPointer = SmartPointer<const Self> |
Definition at line 51 of file itkGPUFiniteDifferenceImageFilter.h.
using itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::CPUSuperclass = TParentImageFilter |
Definition at line 49 of file itkGPUFiniteDifferenceImageFilter.h.
using itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::FiniteDifferenceFunctionType = typename GPUFiniteDifferenceFunction<TOutputImage>::DifferenceFunctionType |
The value type of the time step. This is distinct from PixelType because PixelType may often be a vector value, while the TimeStep is a scalar value.
Definition at line 75 of file itkGPUFiniteDifferenceImageFilter.h.
using itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::GPUSuperclass = GPUInPlaceImageFilter<TInputImage, TOutputImage, TParentImageFilter> |
Definition at line 48 of file itkGPUFiniteDifferenceImageFilter.h.
using itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::InputImageType = TInputImage |
Input and output image types.
Definition at line 57 of file itkGPUFiniteDifferenceImageFilter.h.
using itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::InputPixelType = typename TInputImage::PixelType |
Definition at line 65 of file itkGPUFiniteDifferenceImageFilter.h.
using itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::InputPixelValueType = typename NumericTraits<InputPixelType>::ValueType |
Definition at line 70 of file itkGPUFiniteDifferenceImageFilter.h.
using itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::NeighborhoodScalesType = typename FiniteDifferenceFunctionType::NeighborhoodScalesType |
Definition at line 78 of file itkGPUFiniteDifferenceImageFilter.h.
using itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::OutputImageType = TOutputImage |
Definition at line 58 of file itkGPUFiniteDifferenceImageFilter.h.
using itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::OutputPixelType = typename TOutputImage::PixelType |
The pixel type of the output image will be used in computations.
Definition at line 64 of file itkGPUFiniteDifferenceImageFilter.h.
using itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::OutputPixelValueType = typename NumericTraits<OutputPixelType>::ValueType |
Extract value type in case the pixel is of vector type
Definition at line 69 of file itkGPUFiniteDifferenceImageFilter.h.
using itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::PixelType = OutputPixelType |
Definition at line 66 of file itkGPUFiniteDifferenceImageFilter.h.
using itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::Pointer = SmartPointer<Self> |
Definition at line 50 of file itkGPUFiniteDifferenceImageFilter.h.
using itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::RadiusType = typename FiniteDifferenceFunctionType::RadiusType |
Definition at line 77 of file itkGPUFiniteDifferenceImageFilter.h.
using itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::Self = GPUFiniteDifferenceImageFilter |
Standard class type aliases.
Definition at line 47 of file itkGPUFiniteDifferenceImageFilter.h.
using itk::GPUFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >::TimeStepType = typename FiniteDifferenceFunctionType::TimeStepType |
Definition at line 76 of file itkGPUFiniteDifferenceImageFilter.h.
|
protected |
|
overrideprotected |
|
overrideprotectedpure virtual |
This method allocates a temporary update container in the subclass.
Implemented in itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >, and itk::GPUDenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, TParentImageFilter >.
|
overrideprotectedpure virtual |
This method can be defined in subclasses as needed to copy the input to the output. See DenseFiniteDifferenceImageFilter for an implementation.
Implemented in itk::GPUPDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField, TParentImageFilter >, itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >, and itk::GPUDenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, TParentImageFilter >.
|
overrideprotected |
FiniteDifferenceImageFilter needs a larger input requested region than the output requested region. As such, we need to provide an implementation for GenerateInputRequestedRegion() in order to inform the pipeline execution model.
|
virtual |
Methods to get timers
|
virtual |
Methods to get timers
|
inlineoverride |
This method returns a pointer to a FiniteDifferenceFunction object that will be used by the filter to calculate updates at image pixels.
Definition at line 84 of file itkGPUFiniteDifferenceImageFilter.h.
|
virtual |
Methods to get timers
|
override |
|
virtual |
Methods to get timers
|
virtual |
Set/Get the state of the filter.
|
protectedpure virtual |
This method is defined by a subclass to apply changes to the output from an update buffer and a time step value "dt".
dt | Time step value. |
|
protectedpure virtual |
This method is defined by a subclass to populate an update buffer with changes for the pixels in the output. It returns a time step value to be used for the update.
Implemented in itk::GPUDenseFiniteDifferenceImageFilter< TInputImage, TOutputImage, TParentImageFilter >, and itk::GPUDenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField, TParentImageFilter >.
|
overrideprotectedvirtual |
This is the default, high-level algorithm for calculating finite difference solutions. It calls virtual methods in its subclasses to implement the major steps of the algorithm.
Reimplemented from itk::GPUImageToImageFilter< TInputImage, TOutputImage, TParentImageFilter >.
|
overrideprotected |
This method returns true when the current iterative solution of the equation has met the criteria to stop solving. Defined by a subclass.
|
inlineoverrideprotected |
This method is optionally defined by a subclass and is called before the loop of iterations of calculate_change & update. It does the global initialization, i.e. in the SparseFieldLevelSetImageFilter, initialize the list of layers.
Definition at line 223 of file itkGPUFiniteDifferenceImageFilter.h.
|
private |
Initialize the values of the Function coefficients. This function will also take care of checking whether the image spacing should be taken into account or not.
|
inlineoverrideprotected |
This method is optionally defined by a subclass and is called immediately prior to each iterative CalculateChange-ApplyUpdate cycle. It can be used to set global variables needed for the next iteration (ie. average gradient magnitude of the image in anisotropic diffusion functions), or otherwise prepare for the next iteration.
Definition at line 233 of file itkGPUFiniteDifferenceImageFilter.h.
|
inlineoverrideprotected |
This method is called after the solution has been generated to allow subclasses to apply some further processing to the output.
Definition at line 256 of file itkGPUFiniteDifferenceImageFilter.h.
|
overrideprotected |
|
overrideprotected |
Virtual method for resolving a single time step from a set of time steps returned from processing threads.
timeStepList | The set of time changes compiled from all the threaded calls to ThreadedGenerateData. |
valid | The set of flags indicating which of "timeStepList" elements are valid. |
The default is to return the minimum value in the list.
|
inlineoverride |
This method sets the pointer to a FiniteDifferenceFunction object that will be used by the filter to calculate updates at image pixels.
Definition at line 93 of file itkGPUFiniteDifferenceImageFilter.h.
|
virtual |
Set/Get the state of the filter.
|
inline |
Set the state of the filter to INITIALIZED
Definition at line 114 of file itkGPUFiniteDifferenceImageFilter.h.
|
inline |
Set the state of the filter to UNINITIALIZED
Definition at line 121 of file itkGPUFiniteDifferenceImageFilter.h.
|
inlineoverrideprotected |
This method is similar to Halt(), and its default implementation in this class is simply to call Halt(). However, this method takes as a parameter a void pointer to the MultiThreaderBase::WorkUnitInfo structure. If you override this method instead of overriding Halt, you will be able to get the current thread ID and handle the Halt method accordingly. This is useful if you are doing a lot of processing in Halt that you don't want parallelized. Notice that ThreadedHalt is only called by the multithreaded filters, so you still should implement Halt, just in case a non-threaded filter is used.
Definition at line 212 of file itkGPUFiniteDifferenceImageFilter.h.
|
staticconstexpr |
Dimensionality of input and output data is assumed to be the same.
Definition at line 61 of file itkGPUFiniteDifferenceImageFilter.h.
|
protected |
Definition at line 260 of file itkGPUFiniteDifferenceImageFilter.h.
|
protected |
Definition at line 260 of file itkGPUFiniteDifferenceImageFilter.h.
|
private |
The function that will be used in calculating updates for each pixel.
Definition at line 270 of file itkGPUFiniteDifferenceImageFilter.h.
|
protected |
Timers for statistics
Definition at line 260 of file itkGPUFiniteDifferenceImageFilter.h.
|
protected |
Definition at line 260 of file itkGPUFiniteDifferenceImageFilter.h.
|
private |
State that the filter is in, i.e. UNINITIALIZED or INITIALIZED
Definition at line 277 of file itkGPUFiniteDifferenceImageFilter.h.
|
private |
Control whether derivatives use spacing of the input image in its calculation.
Definition at line 274 of file itkGPUFiniteDifferenceImageFilter.h.