STIR 6.4.0
ModelMatrix.h
Go to the documentation of this file.
1//
2//
3/*
4 Copyright (C) 2006 - 2011, Hammersmith Imanet Ltd
5 This file is part of STIR.
6
7 SPDX-License-Identifier: Apache-2.0
8
9 See STIR/LICENSE.txt for details
10*/
18
19#ifndef __stir_modelling_ModelMatrix_H__
20#define __stir_modelling_ModelMatrix_H__
21
22#include "stir/Array.h"
27#include "stir/Succeeded.h"
28#include <fstream>
29#include <iostream>
30
31START_NAMESPACE_STIR
33
35template <int num_param>
37{
38public:
39 inline ModelMatrix();
40
41 inline ~ModelMatrix();
42
46 inline void read_from_file(const std::string input_string);
47
49 inline Succeeded write_to_file(const std::string output_string);
50
53 inline Array<2, float> get_model_array() const;
54 inline const VectorWithOffset<float> get_model_array_sum() const;
55 inline VectorWithOffset<float> get_time_vector() const;
59 inline void set_model_array(const Array<2, float>& model_array);
60 inline void set_time_vector(const VectorWithOffset<float>& time_vector);
62 inline void set_is_uncalibrated(const bool is_uncalibrated);
63 inline void set_is_in_correct_scale(const bool in_correct_scale);
65
67 inline void threshold_model_array(const float threshold_value);
68
73 inline void uncalibrate(const float cal_factor);
74
78 inline void scale_model_matrix(const float scale_factor);
79
84 inline void convert_to_total_frame_counts(const TimeFrameDefinitions& time_frame_definitions);
85
92 const DynamicDiscretisedDensity& dynamic_image) const;
94
98 const DynamicDiscretisedDensity& dynamic_image) const;
100 inline void
102 const ParametricVoxelsOnCartesianGrid& parametric_image) const;
104
108 const ParametricVoxelsOnCartesianGrid& parametric_image) const;
109
110 inline void normalise_parametric_image_with_model_sum(ParametricVoxelsOnCartesianGrid& parametric_image_out,
111 const ParametricVoxelsOnCartesianGrid& parametric_image) const;
113private:
115 Array<2, float> _model_array;
116 VectorWithOffset<float> _time_vector;
117 bool _is_uncalibrated;
118 bool _in_correct_scale;
119 bool _is_converted_to_total_counts;
120};
121
122END_NAMESPACE_STIR
123
124#include "stir/modelling/ModelMatrix.inl"
125
126#endif //__stir_modelling_ModelMatrix_H__
defines the stir::Array class for multi-dimensional (numeric) arrays
This file declares class stir::BasicCoordinate and some functions acting on stir::BasicCoordinate obj...
Declaration of class stir::DynamicDiscretisedDensity.
Declaration of class stir::ParametricDiscretisedDensity.
Declaration of class stir::Succeeded.
defines the stir::VectorWithOffset class
This class defines multi-dimensional (numeric) arrays.
Definition Array.h:78
Class of multiple image frames, one for each time frame Each time frame is a DiscretisedDensity<3,...
Definition DynamicDiscretisedDensity.h:46
void multiply_dynamic_image_with_model(ParametricVoxelsOnCartesianGrid &parametric_image, const DynamicDiscretisedDensity &dynamic_image) const
multiply (transpose) model-matrix with dynamic image (overwriting original content of parametric_imag...
Definition ModelMatrix.inl:282
void scale_model_matrix(const float scale_factor)
Definition ModelMatrix.inl:192
void multiply_parametric_image_with_model(DynamicDiscretisedDensity &dynamic_image, const ParametricVoxelsOnCartesianGrid &parametric_image) const
multiply model-matrix with parametric image (overwriting original content of dynamic_image)
Definition ModelMatrix.inl:329
void threshold_model_array(const float threshold_value)
Function to give the threshold_value to the all elements of the model_array which lower value than th...
Definition ModelMatrix.inl:144
void read_from_file(const std::string input_string)
Implementation to read the model matrix.
Definition ModelMatrix.inl:46
Succeeded write_to_file(const std::string output_string)
Implementation to write the model matrix to a text file.
Definition ModelMatrix.inl:80
void multiply_parametric_image_with_model_and_add_to_input(DynamicDiscretisedDensity &dynamic_image, const ParametricVoxelsOnCartesianGrid &parametric_image) const
multiply model-matrix with parametric image and add result to original dynamic_image
Definition ModelMatrix.inl:291
void convert_to_total_frame_counts(const TimeFrameDefinitions &time_frame_definitions)
Definition ModelMatrix.inl:211
void set_is_uncalibrated(const bool is_uncalibrated)
Function to set _is_calibrated boolean true or false.
Definition ModelMatrix.inl:158
void uncalibrate(const float cal_factor)
Definition ModelMatrix.inl:172
ModelMatrix()
default constructor
Definition ModelMatrix.inl:27
void multiply_dynamic_image_with_model_and_add_to_input(ParametricVoxelsOnCartesianGrid &parametric_image, const DynamicDiscretisedDensity &dynamic_image) const
multiply (transpose) model-matrix with dynamic image and add result to original parametric_image
Definition ModelMatrix.inl:244
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 frame durations.
Definition TimeFrameDefinitions.h:39
A templated class for vectors, but with indices starting not from 0.
Definition VectorWithOffset.h:65
ParametricDiscretisedDensity< ParametricVoxelsOnCartesianGridBaseType > ParametricVoxelsOnCartesianGrid
Convenience typedef for Cartesian Voxelised Parametric Images with just two parameters.
Definition ParametricDiscretisedDensity.h:172