SuPReMo  0.1.1
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | List of all members
NoImageAcquisition Class Reference

#include <NoImageAcquisition.h>

Inheritance diagram for NoImageAcquisition:
Inheritance graph
[legend]
Collaboration diagram for NoImageAcquisition:
Collaboration graph
[legend]

Public Types

typedef float PrecisionType
 
- Public Types inherited from ImageAcquisition
typedef float PrecisionType
 

Public Member Functions

 NoImageAcquisition ()
 
virtual ~NoImageAcquisition ()
 
nifti_image * SimulateImageAcquisition (nifti_image *imgInFullImgSpace, nifti_image *imgInAcquisitionSpace, unsigned int dynamicImageTimePoint)
 
void CalculateAdjoint (nifti_image *imgInFullImgSpace, nifti_image *imgInAcquisitionSpace, unsigned int dynamicImageTimePoint)
 
nifti_image * AllocateMinimumSizeImgInFullImgSpace (nifti_image *imgInFullImgSpace, nifti_image *imgInAcquisitionSpace, unsigned int dynamicImageTimePoint)
 
- Public Member Functions inherited from ImageAcquisition
 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 ()
 
- Protected Member Functions inherited from ImageAcquisition
virtual void AllocateImageAfterAdjoint ()=0
 
virtual void AllocateWeightsImageAfterAdjoint ()
 
virtual void ClearImageAfterAdjoint ()
 
virtual void ClearWeightsImageAfterAdjoint ()
 

Additional Inherited Members

- Protected Attributes inherited from ImageAcquisition
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...
 

Member Typedef Documentation

◆ PrecisionType

Constructor & Destructor Documentation

◆ NoImageAcquisition()

NoImageAcquisition::NoImageAcquisition ( )

Default constructor

◆ ~NoImageAcquisition()

NoImageAcquisition::~NoImageAcquisition ( )
virtual

Destructor

Member Function Documentation

◆ AllocateImageAfterAdjoint()

void NoImageAcquisition::AllocateImageAfterAdjoint ( )
protectedvirtual

Note: This implementation is different to the reference implementaiton in reg_resp which adjusted the image size of the adjoint regardless of which acquisition simulation was selected. This could lead to a segmentation fault in some specific cases. As a result, here the image size is not adjusted for the no-image-acquisition class.

Implements ImageAcquisition.

◆ AllocateMinimumSizeImgInFullImgSpace()

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

Implementation of allocating the minimum-sized image in full image space. Here no image acquisition is simulated, hence the allocated image has to have the size of the image in acquisition space.

Parameters
imgInFullImgSpaceThe full sized image
imgInAcquisitionSpaceThe image in acquisition space
dynamicImageTimePointTime point of the dynamic image (not used).
Returns
An empty image with the size of imgInAcquisitionSpace

Implements ImageAcquisition.

◆ CalculateAdjoint()

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

To achieve the required behaviour when not simulating any image acquisition, copy current image in acquisition space into the image after applying the adjoint. Image after adjoint still needs to be accessed via the corresponding getter function.

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

Implements ImageAcquisition.

◆ SimulateImageAcquisition()

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

Implementation of the image acquisition simulation. Since no image acqusition is simulated, the image in full space is simply returned. This needs to be considered when deleting images, check for equality.

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.

Implements ImageAcquisition.


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