3#ifndef __stir_Interfile_h__
4#define __stir_Interfile_h__
40template <
int num_dimensions>
42template <
int num_dimensions,
typename elemT>
43class DiscretisedDensity;
44template <
typename elemT>
45class VectorWithOffset;
46template <
typename elemT>
47class CartesianCoordinate3D;
48template <
typename elemT>
50template <
typename elemT>
51class VoxelsOnCartesianGrid;
52class ProjDataFromStream;
53class DynamicDiscretisedDensity;
54template <
typename elemT>
55class ParametricDiscretisedDensity;
56template <
typename elemT>
57class VoxelsOnCartesianGrid;
58template <
int num_dimensions,
typename elemT>
59class KineticParameters;
91VoxelsOnCartesianGrid<float>*
read_interfile_image(std::istream& input,
const std::string& directory_for_data =
"");
112ParametricDiscretisedDensity<VoxelsOnCartesianGrid<KineticParameters<2, float>>>*
116ParametricDiscretisedDensity<VoxelsOnCartesianGrid<KineticParameters<2, float>>>*
139 const std::string& image_file_name,
140 const ExamInfo& exam_info,
141 const IndexRange<3>& index_range,
142 const CartesianCoordinate3D<float>& voxel_size,
143 const CartesianCoordinate3D<float>& origin,
144 const NumericType output_type,
145 const ByteOrder byte_order,
146 const VectorWithOffset<float>& scaling_factors,
147 const VectorWithOffset<unsigned long>& file_offsets,
148 const std::vector<std::string>& data_type_descriptions = std::vector<std::string>());
157 unsigned long initial_offset = 0);
166template <
class elemT>
171 const NumericType output_type = NumericType::FLOAT,
172 const float scale = 0,
182template <
class elemT>
188 const NumericType output_type = NumericType::FLOAT,
189 const float scale = 0,
203template <
class elemT>
206 const NumericType output_type = NumericType::FLOAT,
207 const float scale = 0,
218 const NumericType output_type = NumericType::FLOAT,
219 const float scale = 0,
233 const NumericType output_type = NumericType::FLOAT,
234 const float scale = 0,
239 const NumericType output_type = NumericType::FLOAT,
240 const float scale = 0,
245 const NumericType output_type = NumericType::FLOAT,
246 const float scale = 0,
265 const std::string& directory_for_data =
"",
266 const std::ios::openmode openmode = std::ios::in);
287 const std::string& data_filename,
forward declaration of stir::Array class for multi-dimensional (numeric) arrays
This file declares the stir::ByteOrder class.
This file declares the stir::NumericType class.
Declaration of class stir::Succeeded.
This class provides member functions to find out what byte-order your machine is and to swap numbers.
Definition ByteOrder.h:100
@ native
Definition ByteOrder.h:107
a templated class for 3-dimensional coordinates.
Definition CartesianCoordinate3D.h:53
a templated class for 3-dimensional coordinates.
Definition Coordinate3D.h:43
This abstract class is the basis for all image representations.
Definition DiscretisedDensity.h:99
Class of multiple image frames, one for each time frame Each time frame is a DiscretisedDensity<3,...
Definition DynamicDiscretisedDensity.h:46
a class for storing information about 1 exam (or scan)
Definition ExamInfo.h:42
provides names for some numeric types and methods for finding their properties.
Definition NumericType.h:55
Class to store parametric images.
Definition ParametricDiscretisedDensity.h:65
A class which reads/writes projection data from/to a (binary) stream.
Definition ProjDataFromStream.h:57
a class containing an enumeration type that can be used by functions to signal successful operation o...
Definition Succeeded.h:44
A templated class for vectors, but with indices starting not from 0.
Definition VectorWithOffset.h:65
This class is used to represent voxelised densities on a cuboid grid (3D).
Definition VoxelsOnCartesianGrid.h:46
Succeeded write_basic_interfile_image_header(const std::string &header_file_name, const std::string &image_file_name, const ExamInfo &exam_info, const IndexRange< 3 > &index_range, const CartesianCoordinate3D< float > &voxel_size, const CartesianCoordinate3D< float > &origin, const NumericType output_type, const ByteOrder byte_order, const VectorWithOffset< float > &scaling_factors, const VectorWithOffset< unsigned long > &file_offsets, const std::vector< std::string > &data_type_descriptions=std::vector< std::string >())
This outputs an Interfile header for an image.
Definition interfile.cxx:522
const VectorWithOffset< unsigned long > compute_file_offsets(int number_of_time_frames, const NumericType output_type, const Coordinate3D< int > &dim, unsigned long initial_offset=0)
a utility function that computes the file offsets of subsequent images
bool is_interfile_signature(const char *const signature)
Checks if the signature corresponds to the start of an interfile header.
Definition interfile.cxx:77
ProjDataFromStream * read_interfile_PDFS(std::istream &input, const std::string &directory_for_data="", const std::ios::openmode openmode=std::ios::in)
This reads the first 3D sinogram from an Interfile header, given as a stream.
VoxelsOnCartesianGrid< float > * read_interfile_image(std::istream &input, const std::string &directory_for_data="")
This reads the first 3d image in an Interfile header file, given as a stream.
Definition interfile.cxx:126
Succeeded write_basic_interfile_PDFS_header(const std::string &header_filename, const std::string &data_filename, const ProjDataFromStream &pdfs)
This writes an Interfile header appropriate for the ProjDataFromStream object.
Definition interfile.cxx:1103
Succeeded write_basic_interfile(const std::string &filename, const ArrayType< 3, elemT > &image, const CartesianCoordinate3D< float > &voxel_size, const CartesianCoordinate3D< float > &origin, const NumericType output_type=NumericType::FLOAT, const float scale=0, const ByteOrder byte_order=ByteOrder::native)
This outputs an Interfile header and data for a ArrayType<3,elemT> object.
DynamicDiscretisedDensity * read_interfile_dynamic_image(std::istream &input, const std::string &directory_for_data)
Read dynamic image.
Definition interfile.cxx:169
ParametricDiscretisedDensity< VoxelsOnCartesianGrid< KineticParameters< 2, float > > > * read_interfile_parametric_image(std::istream &input, const std::string &directory_for_data)
Read parametric image.
Definition interfile.cxx:219
Array< num_dimensions, elemT > ArrayType
type alias for future-proofing for "large" rectangular arrays
Definition ArrayFwd.h:25