STIR  6.2.0
Classes | Namespaces | Macros | Functions

Declaration of routines which convert CTI things into our building blocks and vice versa. More...

#include "stir/IO/stir_ecat_common.h"
#include "stir/NumericType.h"
#include "matrix.h"
#include <string>
#include <iostream>
#include "stir/shared_ptr.h"

Go to the source code of this file.

Classes

class  stir::DiscretisedDensity< num_dimensions, elemT >
 This abstract class is the basis for all image representations. More...
 
class  stir::VoxelsOnCartesianGrid< elemT >
 This class is used to represent voxelised densities on a cuboid grid (3D). More...
 
class  stir::Sinogram< elemT >
 A class for 2d projection data. More...
 

Namespaces

 stir
 Namespace for the STIR library (and some/most of its applications)
 
 stir::ecat
 Namespace for the ECAT IO part of the STIR library (and some/most of its applications)
 
 stir::ecat::ecat7
 Namespace for the ECAT7 IO part of the STIR library (and some/most of its applications)
 

Macros

#define CTISinogram   ::Sinogram
 

Functions

int map_main_header (char *bufr, Main_header *header)
 
int mh_update (MatrixFile *)
 
bool stir::ecat::ecat7::is_ECAT7_file (const std::string &filename)
 checks if the file is in ECAT7 formatThis partly relies on the implementation of matrix_open in the LLN matrix library. Additional checks are made on the main header. Current checks are: More...
 
bool stir::ecat::ecat7::is_ECAT7_image_file (const std::string &filename)
 checks if the file is in ECAT6 format and if the file contains images
 
bool stir::ecat::ecat7::is_ECAT7_emission_file (const std::string &filename)
 checks if the file is in ECAT6 format and if the file contains emission sinograms (or blank/transmision)
 
bool stir::ecat::ecat7::is_ECAT7_attenuation_file (const std::string &filename)
 checks if the file is in ECAT6 format and if the file contains attenuation correction factors
 
Succeeded stir::ecat::ecat7::read_ECAT7_main_header (Main_header &mhead, const std::string &filename)
 read an ECAT7 main header from a file
 
void stir::ecat::ecat7::find_scanner (shared_ptr< Scanner > &scanner_ptr, const Main_header &mhead)
 determine scanner type from the main_header More...
 
Succeeded stir::ecat::ecat7::DiscretisedDensity_to_ECAT7 (DiscretisedDensity< 3, float > const &density, std::string const &cti_name, std::string const &orig_name, const Scanner &scanner, const int frame_num=1, const int gate_num=1, const int data_num=0, const int bed_num=0)
 Create a new ECAT7 image file and write the data in there.
 
Succeeded stir::ecat::ecat7::DiscretisedDensity_to_ECAT7 (MatrixFile *mptr, DiscretisedDensity< 3, float > const &density, const int frame_num=1, const int gate_num=1, const int data_num=0, const int bed_num=0)
 Write an (extra) image to an existing ECAT7 file. More...
 
Succeeded stir::ecat::ecat7::ProjData_to_ECAT7 (ProjData const &proj_data, NumericType output_type, std::string const &cti_name, std::string const &orig_name, const int frame_num=1, const int gate_num=1, const int data_num=0, const int bed_num=0, const bool write_as_attenuation=false, float scale_factor=0.0F)
 Create a new ECAT7 sinogram file and write the data in there. More...
 
Succeeded stir::ecat::ecat7::ProjData_to_ECAT7 (MatrixFile *mptr, ProjData const &proj_data, const int frame_num=1, const int gate_num=1, const int data_num=0, const int bed_num=0, float scale_factor=0.0F)
 Write an (extra) set of sinograms to an existing ECAT7 file. More...
 
shared_ptr< ExamInfo > stir::ecat::ecat7::read_ECAT7_exam_info (MatrixFile *mptr)
 read ExamInfo from an ECAT7 MatrixFile object More...
 
shared_ptr< ExamInfo > stir::ecat::ecat7::read_ECAT7_exam_info (const std::string &filename)
 read ExamInfo from an ECAT7 file More...
 
void stir::ecat::ecat7::make_ECAT7_main_header (Main_header &, const Scanner &, const std::string &orig_name, ExamInfo const &exam_info)
 Fill in most of the main header given a Scanner object and orig_name.
 
void stir::ecat::ecat7::make_ECAT7_main_header (Main_header &mhead, Scanner const &scanner, const std::string &orig_name, DiscretisedDensity< 3, float > const &density)
 Fill in most of the main header given a Scanner object and orig_name and an image. More...
 
NumericType stir::ecat::ecat7::make_ECAT7_main_header (Main_header &mhead, const std::string &orig_name, ExamInfo const &exam_info, ProjDataInfo const &proj_data_info, const bool write_as_attenuation=false, NumericType output_type=NumericType::FLOAT)
 Fill in most of the main header given an orig_name and a proj_data_info. More...
 
void stir::ecat::ecat7::make_subheader_for_ECAT7 (Attn_subheader &shead, const Main_header &mhead, const ProjDataInfo &proj_data_info)
 Fill in most of the subheader. More...
 
void stir::ecat::ecat7::make_subheader_for_ECAT7 (Scan3D_subheader &shead, const Main_header &mhead, const ProjDataInfo &proj_data_info)
 Fill in most of the subheader. More...
 
ProjDataFromStream * stir::ecat::ecat7::make_pdfs_from_matrix (MatrixFile *const mptr, MatrixData *const matrix, const shared_ptr< std::iostream > &stream_ptr)
 Make a ProjDataFromStream object that 'points' into an ECAT7 file. More...
 
Succeeded stir::ecat::ecat7::write_basic_interfile_header_for_ECAT7 (std::string &interfile_header_name, const std::string &ECAT7_filename, const int frame_num, const int gate_num, const int data_num, const int bed_num)
 Writes an Interfile header that 'points' into an ECAT7 file. More...
 
VoxelsOnCartesianGrid< float > * stir::ecat::ecat7::ECAT7_to_VoxelsOnCartesianGrid (const std::string &ECAT7_filename, const int frame_num, const int gate_num, const int data_num, const int bed_num)
 
ProjDataFromStream * stir::ecat::ecat7::ECAT7_to_PDFS (const std::string &ECAT7_filename, const int frame_num, const int gate_num, const int data_num, const int bed_num)
 

Detailed Description

Declaration of routines which convert CTI things into our building blocks and vice versa.

Author
Kris Thielemans
PARAPET project