SuPReMo  0.1.1
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ImageAcquisition Class Referenceabstract

#include <ImageAcquisition.h>

Inheritance diagram for ImageAcquisition:
Inheritance graph
[legend]

Public Types

typedef float PrecisionType
 

Public Member Functions

 ImageAcquisition ()
 
virtual ~ImageAcquisition ()
 
virtual nifti_image * SimulateImageAcquisition (nifti_image *imgInFullImgSpace, nifti_image *imgInAcquisitionSpace, unsigned int dynamicImageTimePoint)=0
 
virtual void CalculateAdjoint (nifti_image *imgInFullImgSpace, nifti_image *imgInAcquisitionSpace, unsigned int dynamicImageTimePoint)=0
 
virtual nifti_image * AllocateMinimumSizeImgInFullImgSpace (nifti_image *imgInFullImgSpace, nifti_image *imgInAcquisitionSpace, unsigned int dynamicImageTimePoint)=0
 
virtual nifti_image * GetImageAfterAdjoint ()
 
virtual nifti_image * GetWeightsImageAfterAdjoint ()
 

Protected Member Functions

virtual void AllocateImageAfterAdjoint ()=0
 
virtual void AllocateWeightsImageAfterAdjoint ()
 
virtual void ClearImageAfterAdjoint ()
 
virtual void ClearWeightsImageAfterAdjoint ()
 

Protected Attributes

nifti_image * imageAfterAdjoint
 
nifti_image * weightsImageAfterAdjoint
 
nifti_image * curImageInAcquisitionSpace
 Current image in acquisition space. More...
 
nifti_image * curImageInFullImgSpace
 Current image in full image space. More...
 
unsigned int curDynamicImageTimePoint
 Current dynamic image time point. More...
 

Detailed Description

Base class defining the image acquisition interface.

Member Typedef Documentation

◆ PrecisionType

Constructor & Destructor Documentation

◆ ImageAcquisition()

ImageAcquisition::ImageAcquisition ( )

Constructor

◆ ~ImageAcquisition()

ImageAcquisition::~ImageAcquisition ( )
virtual

Destructor

Member Function Documentation

◆ AllocateImageAfterAdjoint()

virtual void ImageAcquisition::AllocateImageAfterAdjoint ( )
protectedpure virtual

◆ AllocateMinimumSizeImgInFullImgSpace()

virtual nifti_image * ImageAcquisition::AllocateMinimumSizeImgInFullImgSpace ( nifti_image *  imgInFullImgSpace,
nifti_image *  imgInAcquisitionSpace,
unsigned int  dynamicImageTimePoint 
)
pure virtual

Allocate an empty image in full image space that has the minimum required size to simulate the image acquisition. This allows, for instance, efficient warping of the image in full image space without the need to warp the full sized image. This has to be implemented by a derived class. This was usually used as the "warped" image in reg-resp.

Parameters
imgInFullImgSpaceThe full sized image
imgInAcquisitionSpaceThe image in acquisition space
dynamicImageTimePointTime point of the dynamic image (if used).

Implemented in LowResolutionImageAcquisition, and NoImageAcquisition.

◆ AllocateWeightsImageAfterAdjoint()

void ImageAcquisition::AllocateWeightsImageAfterAdjoint ( )
protectedvirtual

◆ CalculateAdjoint()

virtual void ImageAcquisition::CalculateAdjoint ( nifti_image *  imgInFullImgSpace,
nifti_image *  imgInAcquisitionSpace,
unsigned int  dynamicImageTimePoint 
)
pure virtual

Calculate the adjoint of the image acquisition - also known as the back-projection for some imaging modalities. Needs to be implementd by derived class according to the image acquisition method. The adjoint image will be allocated internally and kept as a member variable. To access it, use GetImageAfterAdjoint. This image will be deleted by this object.

Parameters
imgInFullImgSpacePointer to nifti image holding the image in full image space.
imgInAcquisitionSpacePointer to the nifti image in acquisition space.
dynamicImageTimePointThe dynamic image time point in case time-dependent meta data needs to be used internally.

Implemented in LowResolutionImageAcquisition, and NoImageAcquisition.

◆ ClearImageAfterAdjoint()

void ImageAcquisition::ClearImageAfterAdjoint ( )
protectedvirtual

◆ ClearWeightsImageAfterAdjoint()

void ImageAcquisition::ClearWeightsImageAfterAdjoint ( )
protectedvirtual

◆ GetImageAfterAdjoint()

nifti_image * ImageAcquisition::GetImageAfterAdjoint ( )
virtual

Get a pointer to the image after adjoint (after the back-projection)

Returns
Returns a pointer to the nifti image calculated by the function CalculateAdjoint.

◆ GetWeightsImageAfterAdjoint()

nifti_image * ImageAcquisition::GetWeightsImageAfterAdjoint ( )
virtual

Get a copy to the weights image after adjoint

◆ SimulateImageAcquisition()

virtual nifti_image * ImageAcquisition::SimulateImageAcquisition ( nifti_image *  imgInFullImgSpace,
nifti_image *  imgInAcquisitionSpace,
unsigned int  dynamicImageTimePoint 
)
pure virtual

Simulate the image acquisition also known as a forward-projection depending on the imaging modality. Needs to be implemented by derived class depending on the image acquisition method. The returned image should be allocated by this function and deleted after use externally(see return ).

Parameters
imgInFullImgSpacePointer to nifti image holding the image in full image space.
imgInAcquisitionSpacePointer to the nifti image in acquisition space.
dynamicImageTimePointThe dynamic image time point in case time-dependent meta data needs to be used internally.
Returns
Pointer to the simulated dyanmic image. This image will be allocated by this function and is expected to be deleted after usaage using nifti_image_free() .

Implemented in LowResolutionImageAcquisition, and NoImageAcquisition.

Member Data Documentation

◆ curDynamicImageTimePoint

unsigned int ImageAcquisition::curDynamicImageTimePoint
protected

Current dynamic image time point.

◆ curImageInAcquisitionSpace

nifti_image* ImageAcquisition::curImageInAcquisitionSpace
protected

Current image in acquisition space.

◆ curImageInFullImgSpace

nifti_image* ImageAcquisition::curImageInFullImgSpace
protected

Current image in full image space.

◆ imageAfterAdjoint

nifti_image* ImageAcquisition::imageAfterAdjoint
protected

◆ weightsImageAfterAdjoint

nifti_image* ImageAcquisition::weightsImageAfterAdjoint
protected

The documentation for this class was generated from the following files: