SIRF
3.5.0
|
A coil sensitivities container based on the GadgetronImagesVector class. More...
#include "gadgetron_data_containers.h"
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< 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 | |
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_ |
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.