SIRF  3.5.0
gadget_lib.h
Go to the documentation of this file.
1 /*
2 SyneRBI Synergistic Image Reconstruction Framework (SIRF)
3 Copyright 2015 - 2019 Rutherford Appleton Laboratory STFC
4 Copyright 2019 University College London
5 
6 This is software developed for the Collaborative Computational
7 Project in Synergistic Reconstruction for Biomedical Imaging (formerly CCP PETMR)
8 (http://www.ccpsynerbi.ac.uk/).
9 
10 Licensed under the Apache License, Version 2.0 (the "License");
11 you may not use this file except in compliance with the License.
12 You may obtain a copy of the License at
13 http://www.apache.org/licenses/LICENSE-2.0
14 Unless required by applicable law or agreed to in writing, software
15 distributed under the License is distributed on an "AS IS" BASIS,
16 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 See the License for the specific language governing permissions and
18 limitations under the License.
19 
20 */
21 
32 #ifndef GADGETS_LIBRARY
33 #define GADGETS_LIBRARY
34 
35 #include <map>
36 //#include <boost/algorithm/string.hpp>
37 
38 #include "sirf/common/iequals.h"
39 
40 namespace sirf {
41 
45  class aGadget {
46  public:
47  virtual void set_property(const char* prop, const char* value) = 0;
48  virtual std::string value_of(const char* prop) = 0;
49  virtual std::string vxml(const std::string& label) const = 0;
50  std::string xml(const std::string& label = "") const
51  {
52  return vxml(label);
53  }
54  };
55 
59  class Gadget : public aGadget {
60  public:
61  Gadget(std::string name, std::string dll, std::string cl) :
62  gadget_(name), dll_(dll)
63  {
64  class_ = cl;
65  //add_property("pass_on_undesired_data", "true");
66  }
67  virtual void set_property(const char* prop, const char* value)
68  {
69  par_[prop] = value;
70  }
71  virtual std::string value_of(const char* prop)
72  {
73  return par_[prop];
74  }
75  void add_property(const char* prop, const char* value)
76  {
77  par_[prop] = value;
78  }
79  virtual std::string vxml(const std::string& label) const
80  {
81  std::string xml_script("<gadget>\n");
82  if (label.size() > 1)
83  xml_script += " <name>" + label + ':' + gadget_ + "</name>\n";
84  else
85  xml_script += " <name>" + gadget_ + "</name>\n";
86  xml_script += " <dll>" + dll_ + "</dll>\n";
87  xml_script += " <classname>" + class_ + "</classname>\n";
88 #if defined(_MSC_VER) && _MSC_VER < 1900
89  std::map<std::string, std::string>::const_iterator it;
90 #else
91  typename std::map<std::string, std::string>::const_iterator it;
92 #endif
93  for (it = par_.begin(); it != par_.end(); ++it) {
94  xml_script += " <property>\n";
95  xml_script += " <name>" + it->first + "</name>\n"; \
96  xml_script += " <value>" + it->second + "</value>\n"; \
97  xml_script += " </property>\n";
98  }
99  xml_script += "</gadget>\n";
100  return xml_script;
101  }
102  protected:
103  std::string gadget_;
104  std::string dll_;
105  std::string class_;
106  std::map<std::string, std::string> par_;
107  };
108 
113  class IsmrmrdAcqMsgReader : public aGadget {
114  public:
115  static const char* class_name()
116  {
117  return "GadgetIsmrmrdAcquisitionMessageReader";
118  }
119  virtual void set_property(const char* prop, const char* value) {}
120  virtual std::string value_of(const char* prop)
121  {
122  return std::string("");
123  }
124  virtual std::string vxml(const std::string& label) const {
125  std::string xml_script("<reader>\n");
126  xml_script += " <slot>1008</slot>\n";
127  xml_script += " <dll>gadgetron_mricore</dll>\n";
128  xml_script +=
129  " <classname>GadgetIsmrmrdAcquisitionMessageReader</classname>\n";
130  xml_script += "</reader>\n";
131  return xml_script;
132  }
133  };
134 
139  class IsmrmrdAcqMsgWriter : public aGadget {
140  public:
141  static const char* class_name()
142  {
143  return "GadgetIsmrmrdAcquisitionMessageWriter";
144  }
145  virtual void set_property(const char* prop, const char* value) {}
146  virtual std::string value_of(const char* prop)
147  {
148  return std::string("");
149  }
150  virtual std::string vxml(const std::string& label) const {
151  std::string xml_script("<writer>\n");
152  xml_script += " <slot>1008</slot>\n";
153  xml_script += " <dll>gadgetron_mricore</dll>\n";
154  xml_script +=
155  " <classname>GadgetIsmrmrdAcquisitionMessageWriter</classname>\n";
156  xml_script += "</writer>\n";
157  return xml_script;
158  }
159  };
160 
164  class IsmrmrdImgMsgReader : public aGadget {
165  public:
166  static const char* class_name()
167  {
168  return "MRIImageReader";
169  }
170  virtual void set_property(const char* prop, const char* value) {}
171  virtual std::string value_of(const char* prop)
172  {
173  return std::string("");
174  }
175  virtual std::string vxml(const std::string& label) const {
176  std::string xml_script("<reader>\n");
177  xml_script += " <slot>1022</slot>\n";
178  xml_script += " <dll>gadgetron_mricore</dll>\n";
179  xml_script +=
180  " <classname>MRIImageReader</classname>\n";
181  xml_script += "</reader>\n";
182  return xml_script;
183  }
184  };
185 
189  class ImageMessageWriter : public aGadget {
190  };
191 
196  public:
197  static const char* class_name()
198  {
199  return "MRIImageWriter";
200  }
201  virtual void set_property(const char* prop, const char* value) {}
202  virtual std::string value_of(const char* prop)
203  {
204  return std::string("");
205  }
206  virtual std::string vxml(const std::string& label) const {
207  std::string xml_script("<writer>\n");
208  xml_script += " <slot>1022</slot>\n";
209  xml_script += " <dll>gadgetron_mricore</dll>\n";
210  xml_script += " <classname>MRIImageWriter</classname>\n";
211  xml_script += "</writer>\n";
212  return xml_script;
213  }
214  };
215 
220  public:
221  static const char* class_name()
222  {
223  return "DicomImageWriter";
224  }
225  virtual void set_property(const char* prop, const char* value) {}
226  virtual std::string value_of(const char* prop)
227  {
228  return std::string("");
229  }
230  virtual std::string vxml(const std::string& label) const {
231  std::string xml_script("<writer>\n");
232  xml_script += " <slot>1018</slot>\n";
233  xml_script += " <dll>gadgetron_dicom</dll>\n";
234  xml_script += " <classname>DicomImageWriter</classname>\n";
235  xml_script += "</writer>\n";
236  return xml_script;
237  }
238  };
239 
243  class NoiseAdjustGadget : public Gadget {
244  public:
246  Gadget("NoiseAdjust", "gadgetron_mricore", "NoiseAdjustGadget")
247  {}
248  static const char* class_name()
249  {
250  return "NoiseAdjustGadget";
251  }
252  };
253 
257  class PCACoilGadget : public Gadget {
258  public:
259  PCACoilGadget() :
260  Gadget("PCACoil", "gadgetron_mricore", "PCACoilGadget")
261  {}
262  static const char* class_name()
263  {
264  return "PCACoilGadget";
265  }
266  };
267 
271  class CoilReductionGadget : public Gadget {
272  public:
274  Gadget("CoilReduction", "gadgetron_mricore", "CoilReductionGadget")
275  {
276  add_property("coil_mask", "");
277  add_property("coils_out", "128");
278  }
279  static const char* class_name()
280  {
281  return "CoilReductionGadget";
282  }
283  };
284 
289  public:
291  Gadget("AsymmetricEcho", "gadgetron_mricore",
292  "AsymmetricEchoAdjustROGadget")
293  {}
294  static const char* class_name()
295  {
296  return "AsymmetricEchoAdjustROGadget";
297  }
298  };
299 
304  public:
306  Gadget("RemoveROOversampling", "gadgetron_mricore",
307  "RemoveROOversamplingGadget")
308  {}
309  static const char* class_name()
310  {
311  return "RemoveROOversamplingGadget";
312  }
313  };
314 
319  public:
321  Gadget("AccTrig", "gadgetron_mricore", "AcquisitionAccumulateTriggerGadget")
322  {
323  add_property("trigger_dimension", "repetition");
324  add_property("sorting_dimension", "slice");
325  }
326  static const char* class_name()
327  {
328  return "AcquisitionAccumulateTriggerGadget";
329  }
330  };
331 
335  class BucketToBufferGadget : public Gadget {
336  public:
338  Gadget("Buff", "gadgetron_mricore", "BucketToBufferGadget")
339  {
340  add_property("N_dimension", "");
341  add_property("S_dimension", "");
342  add_property("split_slices", "true");
343  add_property("ignore_segment", "true");
344  add_property("verbose", "true");
345  }
346  static const char* class_name()
347  {
348  return "BucketToBufferGadget";
349  }
350  };
351 
356  public:
358  Gadget("PrepRef", "gadgetron_mricore",
359  "GenericReconCartesianReferencePrepGadget")
360  {
361  add_property("debug_folder", "");
362  add_property("perform_timing", "true");
363  add_property("verbose", "true");
364  add_property("average_all_ref_N", "true");
365  add_property("average_all_ref_S", "true");
366  add_property("prepare_ref_always", "true");
367  }
368  static const char* class_name()
369  {
370  return "GenericReconCartesianReferencePrepGadget";
371  }
372  };
373 
378  public:
380  Gadget("EigenChannel", "gadgetron_mricore",
381  "GenericReconEigenChannelGadget")
382  {
383  add_property("debug_folder", "");
384  add_property("perform_timing", "true");
385  add_property("verbose", "true");
386  add_property("average_all_ref_N", "true");
387  add_property("average_all_ref_S", "true");
388  add_property("upstream_coil_compression", "true");
389  add_property("upstream_coil_compression_thres", "0.002");
390  add_property("upstream_coil_compression_num_modesKept", "0");
391  }
392  static const char* class_name()
393  {
394  return "GenericReconEigenChannelGadget";
395  }
396  };
397 
402  public:
404  Gadget("PartialFourier", "gadgetron_mricore",
405  "GenericReconPartialFourierHandlingFilterGadget")
406  {
407  add_property("debug_folder", "");
408  add_property("perform_timing", "false");
409  add_property("verbose", "false");
410  add_property("skip_processing_meta_field", "Skip_processing_after_recon");
411  add_property("partial_fourier_filter_RO_width", "0.15");
412  add_property("partial_fourier_filter_E1_width", "0.15");
413  add_property("partial_fourier_filter_E2_width", "0.15");
414  add_property("partial_fourier_filter_densityComp", "false");
415  }
416  static const char* class_name()
417  {
418  return "GenericReconPartialFourierHandlingFilterGadget";
419  }
420  };
421 
426  public:
428  Gadget("ReconKSpaceFiltering", "gadgetron_mricore",
429  "GenericReconKSpaceFilteringGadget")
430  {
431  add_property("debug_folder", "");
432  add_property("perform_timing", "false" );
433  add_property("verbose", "false" );
434  add_property("skip_processing_meta_field", "Skip_processing_after_recon" );
435  add_property("filterRO", "Gaussian" );
436  add_property("filterRO_sigma", "1.0" );
437  add_property("filterRO_width", "0.15" );
438  add_property("filterE1", "Gaussian" );
439  add_property("filterE1_sigma", "1.0" );
440  add_property("filterE1_width", "0.15" );
441  add_property("filterE2", "Gaussian" );
442  add_property("filterE2_sigma", "1.0" );
443  add_property("filterE2_width", "0.15" );
444  }
445  static const char* class_name()
446  {
447  return "GenericReconKSpaceFilteringGadget";
448  }
449  };
450 
454  class SimpleReconGadget : public Gadget {
455  public:
457  Gadget("SimpleRecon", "gadgetron_mricore", "SimpleReconGadget")
458  {}
459  static const char* class_name()
460  {
461  return "SimpleReconGadget";
462  }
463  };
464 
468  class FFTGadget : public Gadget {
469  public:
470  FFTGadget() :
471  Gadget("FFT", "gadgetron_mricore", "FFTGadget")
472  {}
473  static const char* class_name()
474  {
475  return "FFTGadget";
476  }
477  };
478 
482  class CombineGadget : public Gadget {
483  public:
484  CombineGadget() :
485  Gadget("Combine", "gadgetron_mricore", "CombineGadget")
486  {}
487  static const char* class_name()
488  {
489  return "CombineGadget";
490  }
491  };
492 
497  public:
499  Gadget("Recon", "gadgetron_mricore", "GenericReconCartesianFFTGadget")
500  {
501  add_property("image_series","0");
502  add_property("coil_map_algorithm","Inati");
503  add_property("debug_folder","");
504  add_property("perform_timing","true");
505  add_property("verbose","true");
506  }
507  static const char* class_name()
508  {
509  return "GenericReconCartesianFFTGadget";
510  }
511  };
512 
517  public:
519  Gadget("CartesianGrappa", "gadgetron_mricore",
520  "GenericReconCartesianGrappaGadget")
521  {
522  add_property("image_series", "0");
523  add_property("coil_map_algorithm", "Inati");
524  add_property("downstream_coil_compression", "true");
525  add_property("downstream_coil_compression_thres", "0.01");
526  add_property("downstream_coil_compression_num_modesKept", "0");
527  add_property("send_out_gfactor", "true");
528  add_property("debug_folder", "");
529  add_property("perform_timing", "true");
530  add_property("verbose", "true");
531  }
532  static const char* class_name()
533  {
534  return "GenericReconCartesianGrappaGadget";
535  }
536  };
537 
542  public:
544  Gadget("FOVAdjustment", "gadgetron_mricore",
545  "GenericReconFieldOfViewAdjustmentGadget")
546  {
547  add_property("debug_folder", "");
548  add_property("perform_timing", "false");
549  add_property("verbose", "false");
550  }
551  static const char* class_name()
552  {
553  return "GenericReconFieldOfViewAdjustmentGadget";
554  }
555  };
556 
561  public:
563  Gadget("Scaling", "gadgetron_mricore",
564  "GenericReconImageArrayScalingGadget")
565  {
566  add_property("perform_timing", "false");
567  add_property("verbose", "false");
568  add_property("min_intensity_value", "64");
569  add_property("max_intensity_value", "4095");
570  add_property("scalingFactor", "10.0");
571  add_property("use_constant_scalingFactor", "true");
572  add_property("scalingFactor_dedicated", "100.0");
573  add_property("auto_scaling_only_once", "true");
574  }
575  static const char* class_name()
576  {
577  return "GenericReconImageArrayScalingGadget";
578  }
579  };
580 
584  class FatWaterGadget : public Gadget {
585  public:
586  FatWaterGadget() :
587  Gadget("FatWater", "gadgetron_fatwater", "FatWaterGadget")
588  {}
589  static const char* class_name()
590  {
591  return "FatWaterGadget";
592  }
593  };
594 
598  class ImageArraySplitGadget : public Gadget {
599  public:
601  Gadget("ImageArraySplit", "gadgetron_mricore", "ImageArraySplitGadget")
602  {}
603  static const char* class_name()
604  {
605  return "ImageArraySplitGadget";
606  }
607  };
608 
613  public:
615  Gadget("PhysioInterpolation", "gadgetron_mricore", "PhysioInterpolationGadget")
616  {
617  add_property("phases", "30");
618  add_property("mode", "0");
619  add_property("first_beat_on_trigger", "true");
620  add_property("interp_method", "BSpline");
621  }
622  static const char* class_name()
623  {
624  return "PhysioInterpolationGadget";
625  }
626  };
627 
631  class GPURadialPrepGadget : public Gadget {
632  public:
633  GPURadialPrepGadget(std::string name, std::string dll, std::string cl) :
634  Gadget(name, dll, cl)
635  {
636  add_property("mode", "0");
637  add_property("deviceno", "0");
638  add_property("profiles_per_frame", "0");
639  add_property("rotations_per_reconstruction", "0");
640  add_property("frames_per_rotation", "0");
641  add_property("buffer_frames_per_rotation", "0");
642  add_property("buffer_length_in_rotations", "1");
643  add_property("buffer_using_solver", "false");
644  add_property("buffer_convolution_kernel_width", "5.5");
645  add_property("buffer_convolution_oversampling_factor", "1.25");
646  add_property("reconstruction_os_factor_x", "1.0");
647  add_property("reconstruction_os_factor_y", "1.0");
648  add_property("output_timing", "false");
649  }
650 /*
651  static const char* class_name()
652  {
653  return "GPUSenseGadget";
654  }
655 */
656  };
657 
662  public:
664  GPURadialPrepGadget("gpuRadialSensePrepGadget", "gadgetron_gpuradial", "gpuRadialSensePrepGadget")
665  {}
666  static const char* class_name()
667  {
668  return "GPURadialSensePrepGadget";
669  }
670  };
671 
675  class GPUSenseGadget : public Gadget {
676  public:
677  GPUSenseGadget(std::string name, std::string dll, std::string cl) :
678  Gadget(name, dll, cl)
679  {
680  add_property("deviceno", "0");
681  add_property("setno", "0");
682  add_property("sliceno", "0");
683  add_property("oversampling_factor", "1.5");
684  add_property("kernel_width", "5.5");
685  add_property("save_individual_frames", "true");
686  add_property("output_convergence", "false");
687  add_property("rotations_to_discard", "0");
688  add_property("output_timing", "false");
689  }
690 /*
691  static const char* class_name()
692  {
693  return "GPUSenseGadget";
694  }
695 */
696  };
697 
702  public:
703  GPUCGSenseGadget() :
704  GPUSenseGadget("gpuCgSenseGadget", "gadgetron_gpuparallelmri", "gpuCgSenseGadget")
705  {
706  add_property("kappa", "0.3");
707  add_property("number_of_iterations", "5");
708  add_property("cg_limit", "1e-6");
709  }
710  static const char* class_name()
711  {
712  return "GPUCGSenseGadget";
713  }
714  };
715 
719  class ExtractGadget : public Gadget {
720  public:
721  ExtractGadget() :
722  Gadget("Extract", "gadgetron_mricore", "ExtractGadget")
723  {
724  add_property("extract_mask", "0");
725  add_property("extract_magnitude", "true");
726  add_property("extract_real", "false");
727  add_property("extract_imag", "false");
728  add_property("extract_phase", "false");
729  }
730  static const char* class_name()
731  {
732  return "ExtractGadget";
733  }
734  };
735 
739  class AutoScaleGadget : public Gadget {
740  public:
741  AutoScaleGadget() :
742  Gadget("AutoScale", "gadgetron_mricore", "AutoScaleGadget")
743  {}
744  static const char* class_name()
745  {
746  return "AutoScaleGadget";
747  }
748  };
749 
753  class ComplexToFloatGadget : public Gadget {
754  public:
756  Gadget("ComplexToFloatAttrib", "gadgetron_mricore", "ComplexToFloatGadget")
757  {}
758  static const char* class_name()
759  {
760  return "ComplexToFloatGadget";
761  }
762  };
763 
767  class FloatToFixPointGadget : public Gadget {
768  public:
769  FloatToFixPointGadget(std::string name, // = "FloatToFixPoint",
770  std::string dll, // = "gadgetron_mricore",
771  std::string cl, // = "FloatToFixPointGadget",
772  std::string max_int) : // = "32767") :
773  Gadget(name, dll, cl)
774  {
775  add_property("min_intensity", "0");
776  add_property("max_intensity", max_int.c_str());
777  add_property("intensity_offset", "0");
778  }
779 /*
780  static const char* class_name()
781  {
782  return "FloatToFixPointGadget";
783  }
784 */
785  };
786 
791  public:
793  FloatToFixPointGadget("FloatToShort", "gadgetron_mricore", "FloatToUShortGadget", "65535")
794  {}
795  static const char* class_name()
796  {
797  return "FloatToUShortGadget";
798  }
799  };
800 
805  public:
807  FloatToFixPointGadget("FloatToShortAttrib", "gadgetron_mricore",
808  "FloatToShortGadget", "32767")
809  {}
810  static const char* class_name()
811  {
812  return "FloatToShortGadget";
813  }
814  };
815 /*
816  class FloatToShortGadget : public Gadget {
817  public:
818  FloatToShortGadget() :
819  Gadget("FloatToShortAttrib", "gadgetron_mricore",
820  "FloatToShortGadget")
821  {
822  add_property("min_intensity", "0");
823  add_property("max_intensity", "32767");
824  add_property("intensity_offset", "0");
825  }
826  static const char* class_name()
827  {
828  return "FloatToShortGadget";
829  }
830  };
831 */
835  class ImageFinishGadget : public Gadget {
836  public:
838  Gadget("ImageFinish", "gadgetron_mricore", "ImageFinishGadget")
839  {}
840  static const char* class_name()
841  {
842  return "ImageFinishGadget";
843  }
844  };
845 
849  class DicomFinishGadget : public Gadget {
850  public:
852  Gadget("DicomFinish", "gadgetron_dicom", "DicomFinishGadget")
853  {}
854  static const char* class_name()
855  {
856  return "DicomFinishGadget";
857  }
858  };
859 
864  public:
866  Gadget("AcquisitionFinish", "gadgetron_mricore", "AcquisitionFinishGadget")
867  {}
868  static const char* class_name()
869  {
870  return "AcquisitionFinishGadget";
871  }
872  };
873 
878  class SimpleReconGadgetSet : public aGadget {
879  public:
880  static const char* class_name()
881  {
882  return "SimpleReconGadgetSet";
883  }
884  virtual void set_property(const char* prop, const char* value)
885  {
886  if (sirf::iequals(prop, "trigger_dimension") ||
887  sirf::iequals(prop, "sorting_dimension"))
888  aat_.set_property(prop, value);
889  else if (sirf::iequals(prop, "n_dimension") ||
890  sirf::iequals(prop, "s_dimension") ||
891  sirf::iequals(prop, "split_slices"))
892  bb_.set_property(prop, value);
893  else
894  THROW("unknown gadget parameter");
895  }
896  virtual std::string value_of(const char* prop)
897  {
898  if (sirf::iequals(prop, "trigger_dimension") ||
899  sirf::iequals(prop, "sorting_dimension"))
900  return aat_.value_of(prop);
901  else if (sirf::iequals(prop, "n_dimension") ||
902  sirf::iequals(prop, "s_dimension") ||
903  sirf::iequals(prop, "split_slices"))
904  return bb_.value_of(prop);
905  THROW("unknown gadget parameter");
906  }
907  virtual std::string vxml(const std::string& label) const
908  {
909  std::string xml_script;
910  xml_script += aat_.xml();
911  xml_script += bb_.xml();
912  xml_script += sr_.xml();
913  xml_script += ias_.xml();
914  return xml_script;
915  }
916  private:
919  SimpleReconGadget sr_;
921  };
922 
923 }
924 
925 #endif
Class for the generator of xml definition of AcquisitionAccumulateTriggerGadget.
Definition: gadget_lib.h:318
Class for the generator of xml definition of AcquisitionFinishGadget.
Definition: gadget_lib.h:863
Class for the generator of xml definition of AsymmetricEchoAdjustROGadget.
Definition: gadget_lib.h:288
Class for the generator of xml definition of AutoScaleGadget.
Definition: gadget_lib.h:739
Class for the generator of xml definition of BucketToBufferGadget.
Definition: gadget_lib.h:335
Class for the generator of xml definition of CoilReductionGadget.
Definition: gadget_lib.h:271
Class for the generator of xml definition of CombineGadget.
Definition: gadget_lib.h:482
Class for the generator of xml definition of ComplexToFloatGadget.
Definition: gadget_lib.h:753
Class for the generator of xml definition of DicomFinishGadget.
Definition: gadget_lib.h:849
Class for DicomImageWriter gadget xml-definition generator.
Definition: gadget_lib.h:219
Class for the generator of xml definition of ExtractGadget.
Definition: gadget_lib.h:719
Class for the generator of xml definition of FFTGadget.
Definition: gadget_lib.h:468
Class for the generator of xml definition of FatWaterGadget.
Definition: gadget_lib.h:584
Class for the generator of xml definition of FloatToFixPointGadget.
Definition: gadget_lib.h:767
Class for the generator of xml definition of FloatToShortGadget.
Definition: gadget_lib.h:804
Class for the generator of xml definition of FloatToUShortGadget.
Definition: gadget_lib.h:790
Class for the generator of xml definition of GPUCGSenseGadget.
Definition: gadget_lib.h:701
Class for the generator of xml definition of GPURadialPrepGadget.
Definition: gadget_lib.h:631
Class for the generator of xml definition of GPURadialSensePrepGadget.
Definition: gadget_lib.h:661
Class for the generator of xml definition of GPUSenseGadget.
Definition: gadget_lib.h:675
Class for a gadget xml-definition generator.
Definition: gadget_lib.h:59
Class for the generator of xml definition of GenericReconCartesianFFTGadget.
Definition: gadget_lib.h:496
Class for the generator of xml definition of GenericReconCartesianGrappaGadget.
Definition: gadget_lib.h:516
Class for the generator of xml definition of GenericReconCartesianReferencePrepGadget.
Definition: gadget_lib.h:355
Class for the generator of xml definition of GenericReconEigenChannelGadget.
Definition: gadget_lib.h:377
Class for the generator of xml definition of GenericReconFieldOfViewAdjustmentGadget.
Definition: gadget_lib.h:541
Class for the generator of xml definition of GenericReconImageArrayScalingGadget.
Definition: gadget_lib.h:560
Class for the generator of xml definition of GenericReconKSpaceFilteringGadget.
Definition: gadget_lib.h:425
Class for the generator of xml definition of GenericReconPartialFourierHandlingFilterGadget.
Definition: gadget_lib.h:401
Class for the generator of xml definition of ImageArraySplitGadget.
Definition: gadget_lib.h:598
Class for the generator of xml definition of ImageFinishGadget.
Definition: gadget_lib.h:835
Base class for generators of xml-definitions of image writer gadgets.
Definition: gadget_lib.h:189
Class for GadgetIsmrmrdAcquisitionMessageReader gadget xml-definition generator.
Definition: gadget_lib.h:113
Class for GadgetIsmrmrdAcquisitionMessageWriter gadget xml-definition generator.
Definition: gadget_lib.h:139
Class for MRIImageReader gadget xml-definition generator.
Definition: gadget_lib.h:164
Class for MRIImageWriter gadget xml-definition generator.
Definition: gadget_lib.h:195
Class for the generator of xml definition of NoiseAdjustGadget.
Definition: gadget_lib.h:243
Class for the generator of xml definition of PCACoilGadget.
Definition: gadget_lib.h:257
Class for the generator of xml definition of PhysioInterpolationGadget.
Definition: gadget_lib.h:612
Class for the generator of xml definition of RemoveROOversamplingGadget.
Definition: gadget_lib.h:303
Class for the generator of xml definition of SimpleReconGadget.
Definition: gadget_lib.h:454
Class for xml-definition generator for a simple fully sumpled reconstruction gadget set.
Definition: gadget_lib.h:878
Abstract base class for a gadget xml-definition generator.
Definition: gadget_lib.h:45
Defines sirf::iequals.
Abstract data container.
Definition: GeometricalInfo.cpp:141
bool iequals(const std::string &a, const std::string &b)
Case insensitive string comparison, replaces boost::iequals.
Definition: iequals.cpp:7