STIR 6.5.0
PETSIRDInfo_helpers.h File Reference

Helper functions for PETSIRD. More...

#include "stir/CartesianCoordinate3D.h"
#include <array>
#include <set>
#include "stir/format.h"
#include "stir/info.h"
#include <vector>

Go to the source code of this file.

Namespaces

namespace  matrix
 Lightweight 3x3 matrix and 3D vector helpers used during PETSIRD geometry analysis.
namespace  vector_utils
 Helpers for spacing analysis and axis inference from coordinate sets.

Typedefs

using matrix::Mat3 = std::array<std::array<float, 3>, 3>
using matrix::Vec3 = std::array<float, 3>

Functions

Mat3 matrix::transpose (const Mat3 &mat)
 Transpose a 3x3 matrix.
Mat3 matrix::subtract (const Mat3 &A, const Mat3 &B)
 Subtract two 3x3 matrices (A - B).
Vec3 matrix::getAxisFromSkew (const Mat3 &S)
 Extract rotation axis from the skew-symmetric matrix S = R - R^T.
bool vector_utils::get_spacing_uniform (std::vector< float > &spacing, const std::set< float > &unsorted_block_poss, double epsilon=1e-4)
 Compute spacings between sorted unique values and test uniformity.
const std::set< float > & vector_utils::get_largest_vector (const std::set< float > &x, const std::set< float > &y, const std::set< float > &z)
 Return the largest of three sets and report inferred axial direction.
void vector_utils::find_unique_values_1D (std::set< float > &values, const std::vector< float > &input)
 Collect unique values from a 1D vector.
void vector_utils::find_unique_values_2D (std::set< float > &values, const std::vector< std::vector< float > > &input)
 Collect unique values from a 2D vector (matrix).
bool almostEqual (double a, double b, double tol=1e-6)
bool inferGroupSizes_dim2_dim3 (const std::vector< stir::CartesianCoordinate3D< float > > &pts, std::size_t &groupSize_dim2, std::size_t &groupSize_dim3, float tol=1e-5f)

Detailed Description

Helper functions for PETSIRD.

Author
Nikos Efthimiou