SIRF  3.5.0
Public Member Functions | Protected Member Functions | List of all members
sirf::CoilSensitivitiesVector Class Reference

A coil sensitivities container based on the GadgetronImagesVector class. More...

#include "gadgetron_data_containers.h"

Inheritance diagram for sirf::CoilSensitivitiesVector:
sirf::GadgetronImagesVector sirf::ISMRMRDImageData sirf::ImageData sirf::DataContainer

Public Member Functions

 CoilSensitivitiesVector (MRAcquisitionData &ad)
 
 CoilSensitivitiesVector (const char *file)
 
void set_csm_smoothness (int s)
 
void calculate (CoilImagesVector &iv)
 
void calculate (const MRAcquisitionData &acq)
 
CFImage get_csm_as_cfimage (size_t const i) const
 
CFImage get_csm_as_cfimage (const KSpaceSubset::TagType tag, const int offset) const
 
void get_dim (size_t const num_csm, int *dim) const
 
void forward (GadgetronImageData &img, const GadgetronImageData &combined_img) const
 
void backward (GadgetronImageData &combined_img, const GadgetronImageData &img) const
 
- Public Member Functions inherited from sirf::GadgetronImagesVector
 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< GadgetronImageDataabs () const
 
virtual gadgetron::shared_ptr< GadgetronImageDatareal () const
 
virtual void clear_data ()
 
virtual void sort ()
 
virtual gadgetron::shared_ptr< ImageWrapsptr_image_wrap (unsigned int im_num)
 
virtual gadgetron::shared_ptr< const ImageWrapsptr_image_wrap (unsigned int im_num) const
 
virtual ObjectHandle< DataContainer > * new_data_container_handle () const
 
virtual gadgetron::shared_ptr< GadgetronImageDatanew_images_container () const
 
virtual gadgetron::shared_ptr< GadgetronImageDataclone (const char *attr, const char *target)
 
virtual Iteratorbegin ()
 
virtual Iteratorend ()
 
virtual Iterator_constbegin () const
 
virtual Iterator_constend () 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< GadgetronImagesVectorclone () 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< ISMRMRDImageDataclone () const
 
bool sorted () const
 
void set_sorted (bool sorted)
 
std::vector< int > index ()
 
const std::vector< int > & index () const
 
int index (int i) const
 
ImageWrapimage_wrap (unsigned int im_num)
 
const ImageWrapimage_wrap (unsigned int im_num) const
 
void set_meta_data (const AcquisitionsInfo &acqs_info)
 Set the meta data.
 
const AcquisitionsInfoget_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 VoxelisedGeometricalInfo3Dget_geom_info_sptr () const
 Get geometrical info.
 
std::unique_ptr< ImageDataclone () 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< DataContainerclone () const
 
void conjugate ()
 overwrites this container's complex data with complex conjugate values
 
std::unique_ptr< DataContainerconjugate () const
 returns unique pointer to the complex-conjugated copy of this container
 

Protected Member Functions

void coilchannels_from_combined_image (GadgetronImageData &img, const GadgetronImageData &combined_img) const
 
void combine_images_with_coilmaps (GadgetronImageData &combined_img, const GadgetronImageData &img) const
 
void calculate_csm (ISMRMRD::NDArray< complex_float_t > &cm, ISMRMRD::NDArray< float > &img, ISMRMRD::NDArray< complex_float_t > &csm)
 
- 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.
 

Additional Inherited Members

- Public Types inherited from sirf::GadgetronImagesVector
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
 
- 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 Attributes inherited from sirf::ISMRMRDImageData
bool sorted_ =false
 
std::vector< int > index_
 
AcquisitionsInfo acqs_info_
 

Detailed Description

A coil sensitivities container based on the GadgetronImagesVector class.

Coil sensitivities can be computed directly form Acquisition data where in the first step the vector of the GadgetronImagesVector is used to store the individual channels.

Then these images are stored in memory, used to compute the coilmaps themselves, the individual channel reconstructions are discareded and the coilmaps are stored in their stead.

This leaves the possibility to compute coilmaps directly based on readily available indi- vidual channel reconstructions.


The documentation for this class was generated from the following files: