STIR
6.2.0
|
Computes projection matrix elements for VoxelsOnCartesianGrid images by using an interpolation model. More...
#include "stir/recon_buildblock/ProjMatrixByBinUsingInterpolation.h"
Public Member Functions | |
ProjMatrixByBinUsingInterpolation () | |
Default constructor (calls set_defaults()) | |
void | set_up (const shared_ptr< const ProjDataInfo > &proj_data_info_ptr, const shared_ptr< const DiscretisedDensity< 3, float >> &density_info_ptr) override |
Stores all necessary geometric info. More... | |
ProjMatrixByBinUsingInterpolation * | clone () const override |
![]() | |
std::string | get_registered_name () const override |
Returns Derived::registered_name. | |
std::string | parameter_info () override |
Returns a string with all parameters and their values, in a form suitable for parsing again. | |
![]() | |
const DataSymmetriesForBins * | get_symmetries_ptr () const |
get a pointer to an object encoding all symmetries that are used by this ProjMatrixByBin | |
const shared_ptr< DataSymmetriesForBins > | get_symmetries_sptr () const |
get a shared_ptr to an object encoding all symmetries that are used by this ProjMatrixByBin | |
void | get_proj_matrix_elems_for_one_bin (ProjMatrixElemsForOneBin &, const Bin &) const |
The main method for getting a row of the matrix. More... | |
void | enable_cache (const bool v=true) |
void | store_only_basic_bins_in_cache (const bool v=true) |
bool | is_cache_enabled () const |
bool | does_cache_store_only_basic_bins () const |
void | clear_cache () const |
Remove all elements from the cache. | |
![]() | |
ParsingObject (const ParsingObject &) | |
ParsingObject & | operator= (const ParsingObject &) |
void | ask_parameters () |
bool | parse (std::istream &f) |
bool | parse (const char *const filename) |
![]() | |
void | reset_timers () |
reset all timers kept by this object | |
void | stop_timers () const |
stop all timers kept by this object More... | |
void | start_timers (bool do_reset=false) const |
start all timers kept by this object More... | |
double | get_CPU_timer_value () const |
get current value of the CPU timer (since first use or last reset) | |
double | get_wall_clock_timer_value () const |
get current value of the wall-clock timer (since first use or last reset) | |
Static Public Attributes | |
static const char *const | registered_name = "Interpolation" |
Name which will be used when parsing a ProjMatrixByBin object. | |
Additional Inherited Members | |
![]() | |
static ProjMatrixByBin * | read_from_stream (std::istream *) |
Construct a new object (of type Derived) by parsing the istream. More... | |
![]() | |
static ProjMatrixByBin * | read_registered_object (std::istream *in, const std::string ®istered_name) |
Construct a new object (of a type derived from Root, its actual type determined by the registered_name parameter) by parsing the istream. More... | |
static ProjMatrixByBin * | ask_type_and_parameters () |
ask the user for the type, and then calls read_registered_object(0, type) More... | |
static void | list_registered_names (std::ostream &stream) |
List all possible registered names to the stream. More... | |
![]() | |
typedef ProjMatrixByBin *(* | RootFactory) (std::istream *) |
The type of a root factory is a function, taking an istream* as argument, and returning a Root*. | |
typedef FactoryRegistry< std::string, RootFactory, interfile_less > | RegistryType |
The type of the registry. | |
![]() | |
ProjMatrixByBin () | |
default ctor (calls set_defaults()) More... | |
Succeeded | get_cached_proj_matrix_elems_for_one_bin (ProjMatrixElemsForOneBin &) const |
The method that tries to get data from the cache. More... | |
void | cache_proj_matrix_elems_for_one_bin (const ProjMatrixElemsForOneBin &) const |
The method to store data in the cache. | |
![]() | |
virtual void | set_key_values () |
This will be called before parsing or parameter_info is called. More... | |
![]() | |
static RegistryType & | registry () |
Static function returning the registry. More... | |
![]() | |
shared_ptr< DataSymmetriesForBins > | symmetries_sptr |
bool | cache_disabled |
bool | cache_stores_only_basic_bins |
bool | tof_enabled |
If activated TOF reconstruction will be performed. | |
shared_ptr< const VoxelsOnCartesianGrid< float > > | image_info_sptr |
We need a local copy of the discretised density in order to find the cartesian coordinates of each voxel. | |
shared_ptr< const ProjDataInfo > | proj_data_info_sptr |
We need a local copy of the proj_data_info to get the integration boundaries and RayTracing. | |
![]() | |
KeyParser | parser |
Computes projection matrix elements for VoxelsOnCartesianGrid images by using an interpolation model.
This class implements a projection model that interpolates in projection space. When used for back-projection, it should give the same results as BackProjectorByByUsingInterpolation, but is probably much slower.
The current implementation uses some quite generic code to handle symmetries, but is very very slow to compute the elements. Once they are cached, performance is as usual of course.
|
overridevirtual |
Stores all necessary geometric info.
Note that the density_info_ptr is not stored in this object. It's only used to get some info on sizes etc.
Implements stir::ProjMatrixByBin.
References stir::error(), stir::VectorWithOffset< T >::get_max_index(), stir::VectorWithOffset< T >::get_min_index(), stir::DiscretisedDensity< num_dimensions, elemT >::get_origin(), stir::VoxelsOnCartesianGrid< elemT >::get_voxel_size(), stir::ProjMatrixByBin::set_up(), and stir::warning().