|
STIR
6.3.0
|
Implementation of routines which convert ECAT7 things into our building blocks and vice versa. More...
#include "stir/ProjDataInfo.h"#include "stir/ProjDataFromStream.h"#include "stir/ExamInfo.h"#include "stir/TimeFrameDefinitions.h"#include "stir/PatientPosition.h"#include "stir/ImagingModality.h"#include "stir/IO/interfile.h"#include "stir/utilities.h"#include "stir/NumericInfo.h"#include "stir/CartesianCoordinate3D.h"#include "stir/Sinogram.h"#include "stir/IndexRange3D.h"#include "stir/VoxelsOnCartesianGrid.h"#include "stir/ByteOrder.h"#include "stir/ProjData.h"#include "stir/ProjDataInfoCylindricalNoArcCorr.h"#include "stir/ProjDataInfoCylindricalArcCorr.h"#include "stir/SegmentByView.h"#include "stir/IndexRange2D.h"#include "stir/Scanner.h"#include "stir/Bin.h"#include "stir/Succeeded.h"#include "stir/convert_array.h"#include "stir/IO/stir_ecat7.h"#include "stir/IO/write_data.h"#include "stir/IO/read_data.h"#include "stir/unique_ptr.h"#include "stir/warning.h"#include "stir/error.h"#include <iostream>#include <fstream>#include <string>#include <math.h>#include <string.h>#include <stdlib.h>#include <stdarg.h>#include <memory>#include <boost/cstdint.hpp>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) | |
Functions | |
| Succeeded | stir::ecat::ecat7::read_ECAT7_main_header (Main_header &mhead, const std::string &filename) |
| read an ECAT7 main header from a file | |
| 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 | |
| void | stir::ecat::ecat7::find_scanner (shared_ptr< Scanner > &scanner_ptr, const Main_header &mhead) |
| determine scanner type from the main_header More... | |
| short | stir::ecat::ecat7::find_ECAT_data_type (const NumericType &type, const ByteOrder &byte_order) |
| 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::scan_subheader_zero_fill (Scan3D_subheader &shead) |
| void | stir::ecat::ecat7::scan_subheader_zero_fill (Attn_subheader &shead) |
| void | stir::ecat::ecat7::img_subheader_zero_fill (Image_subheader &ihead) |
| 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< iostream > &stream_ptr) |
| 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) |
| 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... | |
| 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::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::update_ECAT7_subheader (MatrixFile *mptr, Scan_subheader &shead, const MatDir &matdir) |
| Succeeded | stir::ecat::ecat7::update_ECAT7_subheader (MatrixFile *mptr, Norm_subheader &shead, const MatDir &matdir) |
| Succeeded | stir::ecat::ecat7::update_ECAT7_subheader (MatrixFile *mptr, Image_subheader &shead, const MatDir &matdir) |
| Succeeded | stir::ecat::ecat7::update_ECAT7_subheader (MatrixFile *mptr, Attn_subheader &shead, const MatDir &matdir) |
| Succeeded | stir::ecat::ecat7::update_ECAT7_subheader (MatrixFile *mptr, Scan3D_subheader &shead, const MatDir &matdir) |
| template<class SUBHEADER_TYPE > | |
| Succeeded | stir::ecat::ecat7::update_ECAT7_subheader (MatrixFile *mptr, SUBHEADER_TYPE &shead, const int frame_num, const int gate_num, const int data_num, const int bed_num) |
| 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... | |
| 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... | |
Implementation of routines which convert ECAT7 things into our building blocks and vice versa.
1.8.13