SIRF  3.6.0
NiftyF3dSym.h
Go to the documentation of this file.
1 /*
2 SyneRBI Synergistic Image Reconstruction Framework (SIRF)
3 Copyright 2017 - 2020 University College London
4 
5 This is software developed for the Collaborative Computational
6 Project in Synergistic Reconstruction for Biomedical Imaging (formerly CCP PETMR)
7 (http://www.ccpsynerbi.ac.uk/).
8 
9 Licensed under the Apache License, Version 2.0 (the "License");
10 you may not use this file except in compliance with the License.
11 You may obtain a copy of the License at
12 http://www.apache.org/licenses/LICENSE-2.0
13 Unless required by applicable law or agreed to in writing, software
14 distributed under the License is distributed on an "AS IS" BASIS,
15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 See the License for the specific language governing permissions and
17 limitations under the License.
18 
19 */
20 
34 #pragma once
35 
37 
38 template<class dataType> class reg_f3d;
39 
40 namespace sirf {
41 
43 template<class dataType> class AffineTransformation;
44 
57 template<class dataType> class NiftyF3dSym : public NiftyRegistration<dataType>
58 {
59 public:
60 
63  {
66  }
67 
69  void process();
70 
72  void set_floating_time_point(const int floating_time_point) { _floating_time_point = floating_time_point; }
73 
75  void set_reference_time_point(const int reference_time_point) { _reference_time_point = reference_time_point; }
76 
79  void set_use_symmetric(const bool use_symmetric) { _use_symmetric = use_symmetric; }
80 
83 
85  virtual const std::shared_ptr<const Transformation<dataType> > get_deformation_field_inverse_sptr(const unsigned idx = 0) const;
86 
88  static void print_all_wrapped_methods();
89 
90 protected:
91 
93  virtual void check_parameters() const;
94 
96  virtual void parse_parameter_file();
97 
99  void set_parameters();
100 
102  std::shared_ptr<reg_f3d<dataType> > _registration_sptr;
103 
109  bool _use_symmetric = false;
111  std::shared_ptr<const AffineTransformation<float> > _initial_transformation_sptr;
112 };
113 }
Base class for all NiftyReg registrations.
Definition: NiftyF3dSym.h:38
Class for affine transformations.
Definition: AffineTransformation.h:49
NiftyReg's f3d class for non-rigid registrations.
Definition: NiftyF3dSym.h:58
void set_use_symmetric(const bool use_symmetric)
Definition: NiftyF3dSym.h:79
void process()
Process.
Definition: NiftyF3dSym.cpp:40
bool _use_symmetric
Use symmetric bool.
Definition: NiftyF3dSym.h:109
virtual void check_parameters() const
Check parameters.
Definition: NiftyF3dSym.cpp:193
std::shared_ptr< reg_f3d< dataType > > _registration_sptr
Registration object.
Definition: NiftyF3dSym.h:102
std::shared_ptr< const AffineTransformation< float > > _initial_transformation_sptr
Transformation matrix.
Definition: NiftyF3dSym.h:111
int _floating_time_point
Floating time point.
Definition: NiftyF3dSym.h:105
void set_parameters()
Set extra parameters.
Definition: NiftyF3dSym.cpp:241
void set_initial_affine_transformation(const std::shared_ptr< const AffineTransformation< float > > mat)
Set initial affine transformation.
Definition: NiftyF3dSym.h:82
int _reference_time_point
Reference time point.
Definition: NiftyF3dSym.h:107
virtual void parse_parameter_file()
Parse parameter file.
Definition: NiftyF3dSym.cpp:205
void set_reference_time_point(const int reference_time_point)
Set reference time point.
Definition: NiftyF3dSym.h:75
virtual const std::shared_ptr< const Transformation< dataType > > get_deformation_field_inverse_sptr(const unsigned idx=0) const
Get inverse deformation field image.
Definition: NiftyF3dSym.cpp:136
NiftyF3dSym()
Constructor.
Definition: NiftyF3dSym.h:62
void set_floating_time_point(const int floating_time_point)
Set floating time point.
Definition: NiftyF3dSym.h:72
static void print_all_wrapped_methods()
Print all wrapped methods.
Definition: NiftyF3dSym.cpp:165
Base class for all NiftyReg registrations.
Definition: NiftyRegistration.h:48
Abstract data container.
Definition: GeometricalInfo.cpp:141