STIR 6.4.0
centre_of_gravity.h
Go to the documentation of this file.
1//
2//
3/*
4 Copyright (C) 2003- 2007, 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*/
19
20#include "stir/ArrayFwd.h"
21
22START_NAMESPACE_STIR
23// predeclerations to avoid having to include the files and create unnecessary
24// dependencies
25template <int num_dimensions, class T>
26class BasicCoordinate;
27template <typename elemT>
28class VectorWithOffset;
29template <class coordT>
30class CartesianCoordinate3D;
31template <class elemT>
32class VoxelsOnCartesianGrid;
33
35
41template <class T>
42T find_unweighted_centre_of_gravity_1d(const VectorWithOffset<T>& row);
43
45
51template <int num_dimensions, class T>
52BasicCoordinate<num_dimensions, T> find_unweighted_centre_of_gravity(const ArrayType<num_dimensions, T>&);
53
55
59template <class T>
60T find_unweighted_centre_of_gravity(const ArrayType<1, T>&);
61
63
70template <int num_dimensions, class T>
71BasicCoordinate<num_dimensions, T> find_centre_of_gravity(const ArrayType<num_dimensions, T>&);
72
74
85template <class T>
86void find_centre_of_gravity_in_mm_per_plane(VectorWithOffset<CartesianCoordinate3D<float>>& allCoG,
87 VectorWithOffset<T>& weights,
88 const VoxelsOnCartesianGrid<T>& image);
89
91
94template <class T>
95CartesianCoordinate3D<float> find_centre_of_gravity_in_mm(const VoxelsOnCartesianGrid<T>& image);
96
97END_NAMESPACE_STIR
forward declaration of stir::Array class for multi-dimensional (numeric) arrays
CartesianCoordinate3D< float > find_centre_of_gravity_in_mm(const VoxelsOnCartesianGrid< T > &image)
Computes centre of gravity of an image.
Definition centre_of_gravity.cxx:123
void find_centre_of_gravity_in_mm_per_plane(VectorWithOffset< CartesianCoordinate3D< float > > &allCoG, VectorWithOffset< T > &weights, const VoxelsOnCartesianGrid< T > &image)
Computes centre of gravity for each plane.
Definition centre_of_gravity.cxx:97
BasicCoordinate< num_dimensions, T > find_centre_of_gravity(const ArrayType< num_dimensions, T > &array)
Compute centre of gravity of an Array.
Definition centre_of_gravity.cxx:86
T find_unweighted_centre_of_gravity(const ArrayType< 1, T > &row)
Compute centre of gravity of a 1D Array but without dividing by its sum.
Definition centre_of_gravity.cxx:45
T find_unweighted_centre_of_gravity_1d(const VectorWithOffset< T > &row)
Compute centre of gravity of a vector but without dividing by its sum.
Definition centre_of_gravity.cxx:34