SuPReMo  0.1.1
Loading...
Searching...
No Matches
ImageAcquisition.h
1// ====================================================================================================
2//
3// SuPReMo: Surrogate Parameterised Respiratory Motion Model
4// An implementation of the generalised motion modelling and image registration framework
5//
6// Copyright (c) University College London (UCL). All rights reserved.
7//
8// This software is distributed WITHOUT ANY WARRANTY; without even
9// the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
10// PURPOSE.
11//
12// See LICENSE.txt in the top level directory for details.
13//
14// ====================================================================================================
15
16
17
18
19#pragma once
20#include "nifti1_io.h"
21
25{
26public:
27 typedef float PrecisionType;
28
32
35 virtual ~ImageAcquisition();
36
45 virtual nifti_image* SimulateImageAcquisition( nifti_image * imgInFullImgSpace, nifti_image * imgInAcquisitionSpace, unsigned int dynamicImageTimePoint ) = 0;
46
55 virtual void CalculateAdjoint( nifti_image* imgInFullImgSpace, nifti_image* imgInAcquisitionSpace, unsigned int dynamicImageTimePoint) = 0;
56
65 virtual nifti_image* AllocateMinimumSizeImgInFullImgSpace( nifti_image* imgInFullImgSpace, nifti_image* imgInAcquisitionSpace, unsigned int dynamicImageTimePoint) = 0;
66
70 virtual nifti_image* GetImageAfterAdjoint();
71
74 virtual nifti_image* GetWeightsImageAfterAdjoint();
75
76protected:
77
78 virtual void AllocateImageAfterAdjoint() = 0;
79 virtual void AllocateWeightsImageAfterAdjoint(); // Can go into base-class since this takes the image after adjoint as a basis for copying the data
80 virtual void ClearImageAfterAdjoint();
81 virtual void ClearWeightsImageAfterAdjoint();
82
83 nifti_image* imageAfterAdjoint;
85
89};
Definition: ImageAcquisition.h:25
virtual void ClearImageAfterAdjoint()
Definition: ImageAcquisition.cpp:105
unsigned int curDynamicImageTimePoint
Current dynamic image time point.
Definition: ImageAcquisition.h:88
virtual void AllocateWeightsImageAfterAdjoint()
Definition: ImageAcquisition.cpp:77
nifti_image * curImageInAcquisitionSpace
Current image in acquisition space.
Definition: ImageAcquisition.h:86
virtual void AllocateImageAfterAdjoint()=0
float PrecisionType
Definition: ImageAcquisition.h:27
virtual void ClearWeightsImageAfterAdjoint()
Definition: ImageAcquisition.cpp:120
virtual nifti_image * GetImageAfterAdjoint()
Definition: ImageAcquisition.cpp:55
nifti_image * weightsImageAfterAdjoint
Definition: ImageAcquisition.h:84
virtual void CalculateAdjoint(nifti_image *imgInFullImgSpace, nifti_image *imgInAcquisitionSpace, unsigned int dynamicImageTimePoint)=0
virtual nifti_image * GetWeightsImageAfterAdjoint()
Definition: ImageAcquisition.cpp:66
ImageAcquisition()
Definition: ImageAcquisition.cpp:28
nifti_image * imageAfterAdjoint
Definition: ImageAcquisition.h:83
nifti_image * curImageInFullImgSpace
Current image in full image space.
Definition: ImageAcquisition.h:87
virtual nifti_image * AllocateMinimumSizeImgInFullImgSpace(nifti_image *imgInFullImgSpace, nifti_image *imgInAcquisitionSpace, unsigned int dynamicImageTimePoint)=0
virtual nifti_image * SimulateImageAcquisition(nifti_image *imgInFullImgSpace, nifti_image *imgInAcquisitionSpace, unsigned int dynamicImageTimePoint)=0
virtual ~ImageAcquisition()
Definition: ImageAcquisition.cpp:42