Data Structures | Typedefs | Enumerations | Functions
Basic data strctures and functions

Basic data structures for data and meta-data handling. More...

Data Structures

class  C2DImage
 This is the base class for 2D images that can hold generic pixel data. More...
 
class  C3DCriticalPoint
 A class to hold a critical point. This class holds a critical point in a 3D vector field It consists of a localtion $ x_0 \in \mathbb{R}^3 $, Matrix $ A \in \mathbb{R}^{3 \times 3} $, and a magnitude $ \gamma \in \mathbb{R} $. It is used only as an intermidiate storage. More...
 
class  C3DCriticalPointEigen
 A class to hold a criticalpoint with eigenvalues and eigenvectors. More...
 
class  C3DImage
 The generic base type of a 3D image. More...
 
class  C3DLandmark
 a named 3D landmark More...
 
class  C3DLandmarklist
 A list of named landmarks. More...
 
class  C3DValueAttribute< T >
 a 3D vector value used in attributes More...
 
class  C3DValueAttributeTranslator< T >
 a translater for 3D vectors to and from a std::string More...
 
class  CAttribute
 The class of all attributes of data that is considered to ve meta-data. More...
 
class  CAttributedData
 A collection of attributes. More...
 
class  CAttrTranslator
 A class to translate an attribute from a string. More...
 
class  CFFT1D_R2C
 a class to real-to-complex 1D FFTs More...
 
class  CHistory
 This class holds the complete history list of a data set. More...
 
class  CMinimizer
 A class for generalized minimization problems. More...
 
class  CNoiseGenerator
 Base class for the noise generators. More...
 
struct  CFFT1D_R2C::Complex
 
class  CStringAttrTranslatorMap
 A singelton class to translate strings to attributes based on keys. More...
 
class  CTriangleMesh
 A class to deine a triangle mesh with some attributes. More...
 
class  CMinimizer::Problem
 Base class for all optimization problems that can be run by CMinimizer. More...
 
class  range3d_iterator< I >
 a 3D iterator that knows its position in the 3D grid ans supports iterating over sub-ranges More...
 
class  range3d_iterator_with_boundary_flag< I >
 a 3D iterator that knows its position in the 3D grid, has a flag indicating whether it is on a boundary, and supports iterating over sub-ranges More...
 
class  T2DDatafield< T >
 A class to hold data on a regular 2D grid. More...
 
class  T2DImage< T >
 This is the template version of a 2D image that is used for holding real data. More...
 
class  T2DVector< T >
 a 2D vector More...
 
class  T2DVectorfield< T >
 2D Vector field More...
 
class  T3DDatafield< T >
 A templated class of a 3D data field. More...
 
class  T3DImage< T >
 Specific type of the 3D images that hold real pixel data. More...
 
class  T3DMatrix< T >
 a simple 3x3 matrix More...
 
class  T3DVector< T >
 A simple 3D vector type. More...
 
class  T3DVectorfield< T >
 a 3D vector field More...
 
class  TAttribute< T >
 Class of an attribute that holds data of type T. More...
 
class  TShape< T, M >
 a generic class for morphological shapes More...
 
class  TTranslator< T >
 Generic string vs. attribute translator singleton. More...
 

Typedefs

typedef T3DVectorfield
< C3DDVector
C3DDVectorfield
 a 3D field of floating point double accuracy 3D vectors More...
 
typedef T3DVectorfield
< C3DFVector
C3DFVectorfield
 a 3D field of floating point single accuracy 3D vectors More...
 
typedef TAttribute
< E3DImageOrientation
C3DImageOrientation
 attribute for 3D image orientation More...
 
typedef C3DValueAttribute< int > C3DIntAttribute
 a 3D integer vector More...
 
typedef
C3DValueAttributeTranslator
< int > 
C3DIntAttributeTranslator
 attribute translator for a 3D integer vector More...
 
typedef TAttribute< CAttributeMapCAttributeList
 providing the possibility to nest attribute lists More...
 
typedef std::map< std::string,
PAttribute
CAttributeMap
 A name:attribute map. More...
 
typedef TAttribute< double > CDoubleAttribute
 a double attribute More...
 
typedef TAttribute< float > CFloatAttribute
 a float attribute More...
 
typedef TAttribute< int > CIntAttribute
 an integer attribute More...
 
typedef TTranslator
< E3DImageOrientation
COrientationTranslator
 translator for 3D image orientations to and from strings More...
 
typedef TAttribute
< E3DPatientPositioning
CPatientPositionAttribute
 attribute for the patient position More...
 
typedef TTranslator
< E3DPatientPositioning
CPatientPositionTranslator
 translator for the patient position More...
 
typedef TAttribute< std::string > CStringAttribute
 a string attribute More...
 
typedef TAttribute
< std::vector< double > > 
CVDoubleAttribute
 a vector of doubles attribute More...
 
typedef TAttribute
< std::vector< float > > 
CVFloatAttribute
 
typedef TAttribute
< std::vector< int > > 
CVIntAttribute
 a vector of integers attribute More...
 
typedef C3DValueAttribute< float > CVoxelAttribute
 a 3D floating point vector used for the voxel size attribute More...
 
typedef
C3DValueAttributeTranslator
< float > 
CVoxelAttributeTranslator
 attribute translator for a 3D floating point vector used for the voxel size More...
 
typedef TAttribute
< std::vector< std::string > > 
CVStringAttribute
 a vector of strings attribute More...
 
typedef std::shared_ptr
< C3DFVectorfield
P3DFVectorfield
 pointer type for a 3D vector field More...
 
typedef std::shared_ptr
< C3DFVectorfield
P3DFVectorfield
 a 3D field of floating point single accuracy 3D vectors More...
 
typedef std::shared_ptr
< CAttributeMap
PAttributeMap
 another pointer-usage easy maker More...
 

Enumerations

enum  E3DImageOrientation {
  ior_undefined = 0, ior_default = 1, ior_xyz = 1, ior_xyz_flipped = 2,
  ior_yxz = 3, ior_yxz_flipped = 4, ior_xzy = 5, ior_xzy_flipped = 6,
  ior_zxy = 7, ior_zxy_flipped = 8, ior_yzx = 9, ior_yzx_flipped =10,
  ior_zyx =11, ior_zyx_flipped =12, ior_axial = 1, ior_axial_flipped = 2,
  ior_coronal = 5, ior_coronal_flipped = 6, ior_saggital = 9, ior_saggital_flipped =10,
  ior_unknown = 13
}
 
enum  E3DPatientPositioning {
  ipp_undefined = 0, ipp_hfp, ipp_hfs, ipp_hfdr,
  ipp_hfdl, ipp_ffp, ipp_ffs, ipp_ffdr,
  ipp_ffdl, ipp_lastindex
}
 
enum  range3d_iterator_with_boundary_flag< I >::EBoundary {
  range3d_iterator_with_boundary_flag< I >::eb_none = 0, range3d_iterator_with_boundary_flag< I >::eb_xlow = 1, range3d_iterator_with_boundary_flag< I >::eb_xhigh = 2, range3d_iterator_with_boundary_flag< I >::eb_x = 3,
  range3d_iterator_with_boundary_flag< I >::eb_ylow = 4, range3d_iterator_with_boundary_flag< I >::eb_yhigh = 8, range3d_iterator_with_boundary_flag< I >::eb_y = 0xC, range3d_iterator_with_boundary_flag< I >::eb_zlow = 0x10,
  range3d_iterator_with_boundary_flag< I >::eb_zhigh = 0x20, range3d_iterator_with_boundary_flag< I >::eb_z = 0x30
}
 
enum  CTriangleMesh::EData {
  CTriangleMesh::ed_none = 0, CTriangleMesh::ed_vertex = 1, CTriangleMesh::ed_normal = 2, CTriangleMesh::ed_color = 4,
  CTriangleMesh::ed_scale = 8
}
 these are some flags to indicate, which data is actually available More...
 
enum  CMinimizer::EMinimizerResult { CMinimizer::failure, CMinimizer::success }
 enum to describe whether optimization succeeded More...
 
enum  C3DCriticalPointEigen::EVType {
  C3DCriticalPointEigen::ev_zero, C3DCriticalPointEigen::ev_real, C3DCriticalPointEigen::ev_real_two_equal, C3DCriticalPointEigen::ev_real_three_equal,
  C3DCriticalPointEigen::ev_complex
}
 types of critical points More...
 

Functions

template<typename T >
void EXPORT_CORE add_attribute (CAttributeMap &attributes, const std::string &key, T value)
 
template<typename T >
T EXPORT_CORE get_attribute_as (const CAttribute &attr)
 
EXPORT_3D C3DFVectorfield get_gradient (const C3DImage &image)
 
EXPORT_3D C3DFVectorfieldoperator+= (C3DFVectorfield &lhs, const C3DFVectorfield &rhs)
 
EXPORT_3D std::ostream & operator<< (std::ostream &os, E3DImageOrientation orient)
 Stream operator to write orientation orient to stream os. More...
 
std::ostream & operator<< (std::ostream &os, const C3DOrientationAndPosition &orient)
 Stream operator to write orientation+position to stream os. More...
 
EXPORT_3D std::ostream & operator<< (std::ostream &os, E3DPatientPositioning pp)
 Stream operator to write patient position orient to stream os. More...
 
EXPORT_CORE std::ostream & operator<< (std::ostream &os, const CAttributeMap &data)
 Facility to write an attribute map to a stream. More...
 
EXPORT_CORE bool operator== (const CAttributeMap &am, const CAttributeMap &bm)
 Compare two attribute data instances a and b. More...
 
EXPORT_3D std::istream & operator>> (std::istream &is, E3DImageOrientation &orient)
 Stream operator to read orientation orient from stream is. More...
 
EXPORT_3D std::istream & operator>> (std::istream &is, C3DOrientationAndPosition &orient)
 Stream operator to read orientation+position from stream is. More...
 
EXPORT_3D std::istream & operator>> (std::istream &is, E3DPatientPositioning &pp)
 Stream operator to read patient position orient from stream is. More...
 

Detailed Description

Basic data structures for data and meta-data handling.

Typedef Documentation

a 3D field of floating point double accuracy 3D vectors

Definition at line 112 of file 3d/vectorfield.hh.

a 3D field of floating point single accuracy 3D vectors

Definition at line 100 of file 3d/vectorfield.hh.

attribute for 3D image orientation

Definition at line 242 of file orientation.hh.

a 3D integer vector

Definition at line 101 of file valueattributetranslator.hh.

attribute translator for a 3D integer vector

Definition at line 107 of file valueattributetranslator.hh.

providing the possibility to nest attribute lists

Definition at line 226 of file attributes.hh.

typedef std::map<std::string, PAttribute> CAttributeMap

A name:attribute map.

Definition at line 214 of file attributes.hh.

typedef TAttribute<double> CDoubleAttribute

a double attribute

Definition at line 189 of file attributes.hh.

typedef TAttribute<float> CFloatAttribute

a float attribute

Definition at line 177 of file attributes.hh.

typedef TAttribute<int> CIntAttribute

an integer attribute

Definition at line 165 of file attributes.hh.

translator for 3D image orientations to and from strings

Definition at line 248 of file orientation.hh.

attribute for the patient position

Definition at line 254 of file orientation.hh.

translator for the patient position

Definition at line 263 of file orientation.hh.

typedef TAttribute<std::string> CStringAttribute

a string attribute

Definition at line 202 of file attributes.hh.

typedef TAttribute<std::vector<double> > CVDoubleAttribute

a vector of doubles attribute

Definition at line 195 of file attributes.hh.

typedef TAttribute<std::vector<float> > CVFloatAttribute

brief a vector of floats attribute

Definition at line 183 of file attributes.hh.

typedef TAttribute<std::vector<int> > CVIntAttribute

a vector of integers attribute

Definition at line 171 of file attributes.hh.

a 3D floating point vector used for the voxel size attribute

Definition at line 89 of file valueattributetranslator.hh.

attribute translator for a 3D floating point vector used for the voxel size

Definition at line 95 of file valueattributetranslator.hh.

typedef TAttribute<std::vector<std::string> > CVStringAttribute

a vector of strings attribute

Definition at line 208 of file attributes.hh.

typedef std::shared_ptr<C3DFVectorfield > P3DFVectorfield

pointer type for a 3D vector field

Definition at line 36 of file multireg.hh.

typedef std::shared_ptr<C3DFVectorfield > P3DFVectorfield

a 3D field of floating point single accuracy 3D vectors

Definition at line 106 of file 3d/vectorfield.hh.

typedef std::shared_ptr<CAttributeMap > PAttributeMap

another pointer-usage easy maker

Definition at line 232 of file attributes.hh.

Enumeration Type Documentation

Basic image orientations based on viewing direction

Enumerator
ior_undefined 
ior_default 

undefined image orientation look from above or below at the head

ior_xyz 

transversal head first

ior_xyz_flipped 

transversal feet first

ior_yxz 

transversal head first xy transposed

ior_yxz_flipped 

transversal feet first xy transposed

ior_xzy 

coronal face first

ior_xzy_flipped 

coronal back first

ior_zxy 

coronal face first xz transposed

ior_zxy_flipped 

coronal back first xz transposed

ior_yzx 

saggital left first

ior_yzx_flipped 

saggital right first

ior_zyx 

saggital left first zy transposed

ior_zyx_flipped 

saggital right first zy transposed

ior_axial 

standard axial/transversal orientation

ior_axial_flipped 

standard axial/transversal orientation

ior_coronal 

standard coronal orientation

ior_coronal_flipped 

standard coronal orientation

ior_saggital 

standard saggital orientation

ior_saggital_flipped 

standard saggital orientation

ior_unknown 

stopper index

Definition at line 40 of file orientation.hh.

The Patient Position (DICOM 7.3.1.1 specifies the position of the patient relative to the imaging equipment space. This attribute is intended for annotation purposes only. It does not provide an exact mathematical relationship of the patient to the imaging equipment.

When facing the front of the imaging equipment, Head First is defined as the patient’s head being positioned toward the front of the imaging equipment. Feet First is defined as the patient’s feet being positioned toward the front of the imaging equipment. Prone is defined as the patient’s face being positioned in a downward (gravity) direction. Supine is defined as the patient’s face being in an upward direction. Decubitus Right is defined as the patient’s right side being in a downward direction. Decubitus Left is defined as the patient’s left side being in a downward direction.

Enumerator
ipp_undefined 

undefined patient position

ipp_hfp 

head first prone

ipp_hfs 

head first supine

ipp_hfdr 

head first Decubitus Right

ipp_hfdl 

head first Decubitus Left

ipp_ffp 

feet first prone

ipp_ffs 

feet first supine

ipp_ffdr 

feet first Decubitus Right

ipp_ffdl 

feet first Decubitus Left

ipp_lastindex 

Definition at line 162 of file orientation.hh.

Enumerate to describe the various positions on the domain boundarys. These boundaries correspond to the full domain of the data, not to the sub-range this iteratior works on. I.e. if the sub-range is a subset of the open domain (i.e. without its boundary) then the iterator will never touch the domain boundary.

Enumerator
eb_none 

no boundary

eb_xlow 

at low x-boundary

eb_xhigh 

at high x-boundary

eb_x 

at one of the x-boundaries

eb_ylow 

at low y-boundary

eb_yhigh 

at high y-boundary

eb_y 

at one of the y-boundaries

eb_zlow 

at low x-boundary

eb_zhigh 

at high z-boundary

eb_z 

at one of the z-boundaries

Definition at line 64 of file 3d/iterator.hh.

these are some flags to indicate, which data is actually available

Enumerator
ed_none 
ed_vertex 
ed_normal 
ed_color 
ed_scale 

Definition at line 74 of file triangularMesh.hh.

enum to describe whether optimization succeeded

Enumerator
failure 

optimization failed

success 

optimization succeeded

Definition at line 54 of file minimizer.hh.

types of critical points

Enumerator
ev_zero 

all eigenvalues are zero (more a placeholder)

ev_real 

three real distinct eigenvalues

ev_real_two_equal 

three real eigenvalues, two equal

ev_real_three_equal 

three real eigenvalues, all equal

ev_complex 

Definition at line 171 of file critical_point.hh.

Function Documentation

template<typename T >
void EXPORT_CORE add_attribute ( CAttributeMap attributes,
const std::string &  key,
value 
)

convenience function to set an attribute in an attribute map:

Remarks
review its use
Template Parameters
typeof the attribute value to be added
Parameters
attributesmap to set the value in
key
value

Definition at line 478 of file attributes.hh.

References cvdebug().

Referenced by CAttributedData::set_attribute().

template<typename T >
T EXPORT_CORE get_attribute_as ( const CAttribute attr)

Helper function to get the value of an attribute. Thr function throws a bad_cast exception, if the attribute doesn't hold a value ofthe requested type T

Template Parameters
Ttarget type
Parameters
attrattribute to be read

Definition at line 156 of file attributes.hh.

EXPORT_3D C3DFVectorfield get_gradient ( const C3DImage image)

Stand alone function to evaluate the gradient of an image using finite differences. The gradient at the boundaries is set to zero.

Parameters
image
Returns
a 3D vector field holding the gradient of the input image
EXPORT_3D C3DFVectorfield& operator+= ( C3DFVectorfield lhs,
const C3DFVectorfield rhs 
)

Concat two vector fields assuming these define transformations A(x) = x - a(x) and B(x) = x - b(x), hence c(x) = a(x-b(x)) + b(x)

Parameters
[in,out]lhsleft input vector field and output
[in]rhsright input vector field and output
Returns
lhs after processing
EXPORT_3D std::ostream& operator<< ( std::ostream &  os,
E3DImageOrientation  orient 
)

Stream operator to write orientation orient to stream os.

Parameters
os
orient
Returns
os
std::ostream& operator<< ( std::ostream &  os,
const C3DOrientationAndPosition orient 
)
inline

Stream operator to write orientation+position to stream os.

Parameters
os
orient
Returns
os

Definition at line 204 of file orientation.hh.

References C3DOrientationAndPosition::print().

EXPORT_3D std::ostream& operator<< ( std::ostream &  os,
E3DPatientPositioning  pp 
)

Stream operator to write patient position orient to stream os.

Parameters
os
pp
Returns
os
EXPORT_CORE std::ostream& operator<< ( std::ostream &  os,
const CAttributeMap data 
)

Facility to write an attribute map to a stream.

Parameters
osoutput stream
datamap of values
Returns
a reference to the output stream
EXPORT_CORE bool operator== ( const CAttributeMap am,
const CAttributeMap bm 
)

Compare two attribute data instances a and b.

Returns
true, if a and b hold the same set of attributes with the same values, false otherwise
EXPORT_3D std::istream& operator>> ( std::istream &  is,
E3DImageOrientation orient 
)

Stream operator to read orientation orient from stream is.

Parameters
is
[out]orient
Returns
is
EXPORT_3D std::istream& operator>> ( std::istream &  is,
C3DOrientationAndPosition orient 
)

Stream operator to read orientation+position from stream is.

Parameters
is
[out]orient
Returns
is
EXPORT_3D std::istream& operator>> ( std::istream &  is,
E3DPatientPositioning pp 
)

Stream operator to read patient position orient from stream is.

Parameters
is
[out]pp
Returns
is