STIR 6.4.0
GatedSpatialTransformation.h
Go to the documentation of this file.
1//
2/*
3 Copyright (C) 2009 - 2013, King's College London
4 This file is part of STIR.
5
6 SPDX-License-Identifier: Apache-2.0
7
8 See STIR/LICENSE.txt for details
9 */
17
18#ifndef __stir_spatial_transformation_GatedSpatialTransformation_H__
19#define __stir_spatial_transformation_GatedSpatialTransformation_H__
20
26#include "stir/Succeeded.h"
27#include <fstream>
28#include <iostream>
29
30START_NAMESPACE_STIR
31
33
36class GatedSpatialTransformation : public RegisteredParsingObject<GatedSpatialTransformation, SpatialTransformation>
37{
38public:
39 static const char* const registered_name;
40
44 GatedSpatialTransformation(const TimeGateDefinitions& time_gate_definitions,
45 const shared_ptr<DiscretisedDensity<3, float>>& density_sptr);
46
47 void read_from_files(const std::string input_string);
48 void write_to_files(const std::string output_string);
49
52 GatedDiscretisedDensity get_spatial_transformation_z() const;
53 GatedDiscretisedDensity get_spatial_transformation_y() const;
54 GatedDiscretisedDensity get_spatial_transformation_x() const;
55 const TimeGateDefinitions& get_time_gate_definitions() const;
59 void set_spatial_transformations(const GatedDiscretisedDensity& motion_z,
60 const GatedDiscretisedDensity& motion_y,
61 const GatedDiscretisedDensity& motion_x);
62 void set_gate_defs(const TimeGateDefinitions& gate_defs);
64
67 void warp_image(GatedDiscretisedDensity& new_gated_image, const GatedDiscretisedDensity& gated_image) const;
68 void warp_image(DiscretisedDensity<3, float>& new_reference_image, const GatedDiscretisedDensity& gated_image) const;
69 void warp_image(GatedDiscretisedDensity& gated_image, const DiscretisedDensity<3, float>& reference_image) const;
70 void accumulate_warp_image(DiscretisedDensity<3, float>& new_reference_image, const GatedDiscretisedDensity& gated_image) const;
71 void set_defaults() override;
72 Succeeded set_up() override;
74private:
76 void initialise_keymap() override;
77 bool post_processing() override;
78 std::string _transformation_filename_prefix;
79 GatedDiscretisedDensity _spatial_transformation_z;
80 GatedDiscretisedDensity _spatial_transformation_y;
81 GatedDiscretisedDensity _spatial_transformation_x;
82 std::string _spline_level_number;
83 bool _spatial_transformations_are_stored;
84 BSpline::BSplineType _spline_type;
85 std::string _time_gate_definition_filename;
86 TimeGateDefinitions _gate_defs;
87};
88
89END_NAMESPACE_STIR
90#endif
Implementation of the n-dimensional B-Splines Interpolation.
defines the stir::DiscretisedDensity class
Implementation of class stir::GatedDiscretisedDensity.
Declaration of class stir::RegisteredParsingObject.
Definition of class stir::SpatialTransformation.
Declaration of class stir::Succeeded.
This abstract class is the basis for all image representations.
Definition DiscretisedDensity.h:99
Class of multiple image gates.
Definition GatedDiscretisedDensity.h:35
void warp_image(GatedDiscretisedDensity &new_gated_image, const GatedDiscretisedDensity &gated_image) const
Warping functions from to gated images.
Definition GatedSpatialTransformation.cxx:138
void accumulate_warp_image(DiscretisedDensity< 3, float > &new_reference_image, const GatedDiscretisedDensity &gated_image) const
Definition GatedSpatialTransformation.cxx:170
GatedSpatialTransformation()
default constructor
Definition GatedSpatialTransformation.cxx:40
void write_to_files(const std::string output_string)
Implementation to write the transformation vectors.
Definition GatedSpatialTransformation.cxx:129
void set_defaults() override
Set defaults before parsing.
Definition GatedSpatialTransformation.cxx:29
void read_from_files(const std::string input_string)
Implementation to read the transformation vectors will be moved to the IO directory because it should...
Definition GatedSpatialTransformation.cxx:95
Parent class for all leaves in a RegisteredObject hierarchy that do parsing of parameter files.
Definition RegisteredParsingObject.h:78
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition Succeeded.h:44
Class used for storing time gate durations.
Definition TimeGateDefinitions.h:43
BSplineType
enum providing constants to define the type of B-Spline used for interpolation
Definition BSplines.h:38