STIR
6.2.0
|
Implementation of routines which convert CTI things into our building blocks and vice versa. More...
#include "stir/IO/interfile.h"
#include "stir/ExamInfo.h"
#include "stir/Sinogram.h"
#include "stir/ProjDataFromStream.h"
#include "stir/ProjDataInfo.h"
#include "stir/IndexRange3D.h"
#include "stir/CartesianCoordinate3D.h"
#include "stir/VoxelsOnCartesianGrid.h"
#include "stir/ByteOrder.h"
#include "stir/ProjData.h"
#include "stir/ProjDataInfoCylindricalArcCorr.h"
#include "stir/convert_array.h"
#include "stir/IndexRange2D.h"
#include "stir/utilities.h"
#include "stir/warning.h"
#include "stir/error.h"
#include "stir/Scanner.h"
#include "stir/IO/ecat6_utils.h"
#include "stir/IO/stir_ecat6.h"
#include "stir/IO/stir_ecat7.h"
#include "boost/cstdint.hpp"
#include "boost/static_assert.hpp"
#include "boost/scoped_array.hpp"
#include <iostream>
#include <fstream>
#include <algorithm>
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::ecat6 | |
Namespace for the ECAT6 IO part of the STIR library (and some/most of its applications) | |
Functions | |
bool | stir::ecat::ecat6::is_ECAT6_file (const std::string &filename) |
checks if the file is in ECAT6 formatAs ECAT6 doesn't have a 'magic number' this check is somewhat heuristic. Checks are only on the main header. Current checks are: More... | |
bool | stir::ecat::ecat6::is_ECAT6_image_file (const std::string &filename) |
checks if the file is in ECAT6 format and if the file contains images | |
bool | stir::ecat::ecat6::is_ECAT6_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::ecat6::is_ECAT6_attenuation_file (const std::string &filename) |
checks if the file is in ECAT6 format and if the file contains attenuation correction factors | |
Scanner * | stir::ecat::ecat6::find_scanner_from_ECAT6_Main_header (const ECAT6_Main_header &mhead) |
determine scanner type from the ECAT6_Main_header More... | |
void | stir::ecat::ecat6::make_ECAT6_Main_header (ECAT6_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::ecat6::make_ECAT6_Main_header (ECAT6_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... | |
void | stir::ecat::ecat6::make_ECAT6_Main_header (ECAT6_Main_header &mhead, const std::string &orig_name, ProjDataInfo const &proj_data_info) |
Fill in most of the main header given an orig_name and a proj_data_info. More... | |
VoxelsOnCartesianGrid< float > * | stir::ecat::ecat6::ECAT6_to_VoxelsOnCartesianGrid (const int frame_num, const int gate_num, const int data_num, const int bed_num, FILE *cti_fptr, const ECAT6_Main_header &mhead) |
void | stir::ecat::ecat6::ECAT6_to_PDFS (const int frame_num, const int gate_num, const int data_num, const int bed_num, int max_ring_diff, bool arccorrected, const std::string &output_file_name, FILE *cti_fptr, const ECAT6_Main_header &mhead) |
Succeeded | stir::ecat::ecat6::DiscretisedDensity_to_ECAT6 (FILE *fptr, DiscretisedDensity< 3, float > const &density, const ECAT6_Main_header &mhead, 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 ECAT6 file. More... | |
Succeeded | stir::ecat::ecat6::DiscretisedDensity_to_ECAT6 (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 ECAT6 image file and write the data in there. More... | |
Succeeded | stir::ecat::ecat6::ProjData_to_ECAT6 (FILE *fptr, ProjData const &proj_data, const ECAT6_Main_header &mhead, const int frame_num=1, const int gate_num=1, const int data_num=0, const int bed_num=0, const bool write_2D_sinograms=false) |
Write an (extra) set of sinograms to an existing ECAT6 file. More... | |
Succeeded | stir::ecat::ecat6::ProjData_to_ECAT6 (ProjData const &proj_data, 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_2D_sinograms=false) |
Create a new ECAT6 sinogram file and write the data in there. More... | |
Implementation of routines which convert CTI things into our building blocks and vice versa.