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 |
Public Member Functions inherited from stir::RegisteredParsingObject< ProjMatrixByBinUsingInterpolation, ProjMatrixByBin, ProjMatrixByBin > | |
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. | |
Public Member Functions inherited from stir::ProjMatrixByBin | |
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. | |
Public Member Functions inherited from stir::ParsingObject | |
ParsingObject (const ParsingObject &) | |
ParsingObject & | operator= (const ParsingObject &) |
void | ask_parameters () |
bool | parse (std::istream &f) |
bool | parse (const char *const filename) |
Public Member Functions inherited from stir::TimedObject | |
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 Public Member Functions inherited from stir::RegisteredParsingObject< ProjMatrixByBinUsingInterpolation, ProjMatrixByBin, ProjMatrixByBin > | |
static ProjMatrixByBin * | read_from_stream (std::istream *) |
Construct a new object (of type Derived) by parsing the istream. More... | |
Static Public Member Functions inherited from stir::RegisteredObject< ProjMatrixByBin > | |
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... | |
Protected Types inherited from stir::RegisteredObject< ProjMatrixByBin > | |
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. | |
Protected Member Functions inherited from stir::ProjMatrixByBin | |
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. | |
Protected Member Functions inherited from stir::ParsingObject | |
virtual void | set_key_values () |
This will be called before parsing or parameter_info is called. More... | |
Static Protected Member Functions inherited from stir::RegisteredObject< ProjMatrixByBin > | |
static RegistryType & | registry () |
Static function returning the registry. More... | |
Protected Attributes inherited from stir::ProjMatrixByBin | |
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. | |
Protected Attributes inherited from stir::ParsingObject | |
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().