SIRF
3.5.0
|
A vector implementation of the abstract Gadgetron image data container class. More...
#include "gadgetron_data_containers.h"
Classes | |
class | Iterator |
class | Iterator_const |
Public Types | |
typedef ImageData::Iterator | BaseIter |
typedef ImageData::Iterator_const | BaseIter_const |
typedef std::vector< gadgetron::shared_ptr< ImageWrap > >::iterator | ImageWrapIter |
typedef std::vector< gadgetron::shared_ptr< ImageWrap > >::const_iterator | ImageWrapIter_const |
Public Member Functions | |
GadgetronImagesVector (const MRAcquisitionData &ad, const bool coil_resolved=false) | |
Constructor for images from MR Acquisition data. More... | |
GadgetronImagesVector (const GadgetronImagesVector &images) | |
GadgetronImagesVector (GadgetronImagesVector &images, const char *attr, const char *target) | |
virtual void | empty () |
virtual unsigned int | items () const |
virtual unsigned int | number () const |
virtual void | append (int image_data_type, void *ptr_image) |
virtual void | append (CFImage &img) |
virtual void | append (const ImageWrap &iw) |
virtual void | append (gadgetron::shared_ptr< ImageWrap > sptr_iw) |
virtual gadgetron::shared_ptr< GadgetronImageData > | abs () const |
virtual gadgetron::shared_ptr< GadgetronImageData > | real () const |
virtual void | clear_data () |
virtual void | sort () |
virtual gadgetron::shared_ptr< ImageWrap > | sptr_image_wrap (unsigned int im_num) |
virtual gadgetron::shared_ptr< const ImageWrap > | sptr_image_wrap (unsigned int im_num) const |
virtual ObjectHandle< DataContainer > * | new_data_container_handle () const |
virtual gadgetron::shared_ptr< GadgetronImageData > | new_images_container () const |
virtual gadgetron::shared_ptr< GadgetronImageData > | clone (const char *attr, const char *target) |
virtual Iterator & | begin () |
virtual Iterator & | end () |
virtual Iterator_const & | begin () const |
virtual Iterator_const & | end () const |
virtual void | set_image_type (int image_type) |
virtual void | get_data (complex_float_t *data) const |
virtual void | set_data (const complex_float_t *data) |
virtual void | get_real_data (float *data) const |
virtual void | set_real_data (const float *data) |
std::unique_ptr< GadgetronImagesVector > | clone () const |
Clone and return as unique pointer. | |
void | print_header (const unsigned im_num) |
Print header info. | |
virtual bool | is_complex () const |
Is complex? | |
virtual void | reorient (const VoxelisedGeometricalInfo3D &geom_info_out) |
Reorient image. Requires that dimensions match. | |
virtual void | set_up_geom_info () |
Populate the geometrical info metadata (from the image's own metadata) | |
Public Member Functions inherited from sirf::ISMRMRDImageData | |
virtual int | read (std::string filename, std::string variable="", int iv=-1) |
virtual void | write (const std::string &filename, const std::string &groupname, const bool dicom) const |
virtual void | write (const std::string &filename) const |
virtual Dimensions | dimensions () const |
virtual void | get_image_dimensions (unsigned int im_num, int *dim) const |
bool | check_dimension_consistency () const |
virtual int | image_data_type (unsigned int im_num) const |
virtual size_t | num_data_elm () const |
virtual float | norm () const |
returns the norm of this container viewed as a vector | |
virtual void | sum (void *ptr) const |
below all void* are actually complex_float_t* | |
virtual void | max (void *ptr) const |
calculates the value of this container's element with the largest real part | |
virtual void | dot (const DataContainer &dc, void *ptr) const |
calculates the dot product of this container with another one More... | |
virtual void | axpby (const void *ptr_a, const DataContainer &a_x, const void *ptr_b, const DataContainer &a_y) |
*this = the linear combination of x and y | |
virtual void | xapyb (const DataContainer &a_x, const void *ptr_a, const DataContainer &a_y, const void *ptr_b) |
alternative interface to the above | |
virtual void | xapyb (const DataContainer &a_x, const void *ptr_a, const DataContainer &a_y, const DataContainer &a_b) |
*this = elementwise sum of x*a and elementwise y*b | |
virtual void | xapyb (const DataContainer &a_x, const DataContainer &a_a, const DataContainer &a_y, const DataContainer &a_b) |
*this = elementwise sum of two elementwise products x*a and y*b | |
virtual void | multiply (const DataContainer &x, const DataContainer &y) |
*this = the elementwise product x*y | |
virtual void | divide (const DataContainer &x, const DataContainer &y) |
*this = the elementwise ratio x / y | |
virtual void | maximum (const DataContainer &x, const DataContainer &y) |
*this = the elementwise max(x, y) | |
virtual void | minimum (const DataContainer &x, const DataContainer &y) |
*this = the elementwise min(x, y) | |
virtual void | power (const DataContainer &x, const DataContainer &y) |
*this = the elementwise pow(x, y) | |
virtual void | multiply (const DataContainer &x, const void *ptr_y) |
*this = the product x * y with scalar y | |
virtual void | add (const DataContainer &x, const void *ptr_y) |
*this = the sum x + y with scalar y | |
virtual void | maximum (const DataContainer &x, const void *ptr_y) |
virtual void | minimum (const DataContainer &x, const void *ptr_y) |
virtual void | power (const DataContainer &x, const void *ptr_y) |
virtual void | exp (const DataContainer &x) |
*this = the elementwise exp(x) | |
virtual void | log (const DataContainer &x) |
*this = the elementwise log(x) | |
virtual void | sqrt (const DataContainer &x) |
*this = the elementwise sqrt(x) | |
virtual void | sign (const DataContainer &x) |
*this = the elementwise sign(x) | |
virtual void | abs (const DataContainer &x) |
*this = the elementwise abs(x) | |
void | binary_op (const DataContainer &a_x, const DataContainer &a_y, complex_float_t(*f)(complex_float_t, complex_float_t)) |
void | semibinary_op (const DataContainer &a_x, complex_float_t y, complex_float_t(*f)(complex_float_t, complex_float_t)) |
void | unary_op (const DataContainer &a_x, complex_float_t(*f)(complex_float_t)) |
void | fill (float s) |
void | scale (float s) |
complex_float_t | dot (const DataContainer &a_x) |
void | axpby (complex_float_t a, const DataContainer &a_x, complex_float_t b, const DataContainer &a_y) |
void | xapyb (const DataContainer &a_x, complex_float_t a, const DataContainer &a_y, complex_float_t b) |
gadgetron::unique_ptr< ISMRMRDImageData > | clone () const |
bool | sorted () const |
void | set_sorted (bool sorted) |
std::vector< int > | index () |
const std::vector< int > & | index () const |
int | index (int i) const |
ImageWrap & | image_wrap (unsigned int im_num) |
const ImageWrap & | image_wrap (unsigned int im_num) const |
void | set_meta_data (const AcquisitionsInfo &acqs_info) |
Set the meta data. | |
const AcquisitionsInfo & | get_meta_data () const |
Get the meta data. | |
Public Member Functions inherited from sirf::ImageData | |
virtual bool | ordered () const |
void | copy (Iterator_const &src, Iterator &dst, Iterator &end) const |
void | fill (const ImageData &im) |
void | fill (float v) |
virtual bool | operator== (const ImageData &id) const |
Write image to file. | |
virtual bool | operator!= (const ImageData &id) const |
std::shared_ptr< const VoxelisedGeometricalInfo3D > | get_geom_info_sptr () const |
Get geometrical info. | |
std::unique_ptr< ImageData > | clone () const |
Clone and return as unique pointer. | |
Public Member Functions inherited from sirf::DataContainer | |
virtual int | bits () const |
returns the size of data elements | |
void | xapyb (const DataContainer &a_x, const DataContainer &a_a, const DataContainer &a_y, const void *ptr_b) |
*this = elementwise sum of elementwise x*a and y*b | |
bool | is_empty () const |
std::unique_ptr< DataContainer > | clone () const |
void | conjugate () |
overwrites this container's complex data with complex conjugate values | |
std::unique_ptr< DataContainer > | conjugate () const |
returns unique pointer to the complex-conjugated copy of this container | |
Additional Inherited Members | |
Static Public Member Functions inherited from sirf::ImageData | |
static bool | can_reorient (const VoxelisedGeometricalInfo3D &geom_1, const VoxelisedGeometricalInfo3D &geom_2, const bool throw_error) |
Can reorient? (check dimensions and spacing) | |
Static Public Member Functions inherited from sirf::DataContainer | |
template<typename T > | |
static T | product (T x, T y) |
template<typename T > | |
static T | ratio (T x, T y) |
template<typename T > | |
static T | inverse_ratio (T x, T y) |
template<typename T > | |
static T | sum (T x, T y) |
template<typename T > | |
static T | maximum (T x, T y) |
template<typename T > | |
static T | maxabs (T x, T y) |
template<typename T > | |
static T | maxreal (T x, T y) |
template<typename T > | |
static T | minimum (T x, T y) |
template<typename T > | |
static T | minabs (T x, T y) |
template<typename T > | |
static T | minreal (T x, T y) |
static std::complex< float > | power (std::complex< float > x, std::complex< float > y) |
static std::complex< float > | exp (std::complex< float > x) |
static std::complex< float > | log (std::complex< float > x) |
static std::complex< float > | sqrt (std::complex< float > x) |
template<typename T > | |
static T | sign (T x) |
template<typename T > | |
static T | abs (T x) |
Protected Member Functions inherited from sirf::ISMRMRDImageData | |
virtual void | conjugate_impl () |
we assume data to be real, complex data containers must override this | |
Protected Member Functions inherited from sirf::ImageData | |
void | set_geom_info (const std::shared_ptr< VoxelisedGeometricalInfo3D > geom_info_sptr) |
Set geom info. | |
Protected Attributes inherited from sirf::ISMRMRDImageData | |
bool | sorted_ =false |
std::vector< int > | index_ |
AcquisitionsInfo | acqs_info_ |
A vector implementation of the abstract Gadgetron image data container class.
Images are stored in an std::vector<shared_ptr<ImageWrap> > object.
GadgetronImagesVector::GadgetronImagesVector | ( | const MRAcquisitionData & | ad, |
const bool | coil_resolved = false |
||
) |
Constructor for images from MR Acquisition data.
The images are generated with the dimensions given in the recon-space of the MRAcquisitionData's ISMRMRD header information. The geometry information and header of the individual images are populated based on all consistent subsets of acquisitions in the MRAcquisition object. The images can also be created coil-resolved.