go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxTransformixFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright UMC Utrecht and contributors
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef elxTransformixFilter_h
19 #define elxTransformixFilter_h
20 
21 #include "itkImageSource.h"
22 
23 #include "elxTransformixMain.h"
24 #include "elxParameterObject.h"
25 #include "elxPixelType.h"
26 
32 namespace elastix
33 {
34 
35 template< typename TMovingImage >
36 class ELASTIXLIB_API TransformixFilter : public itk::ImageSource< TMovingImage >
37 {
38 public:
39 
42  typedef itk::ImageSource< TMovingImage > Superclass;
43  typedef itk::SmartPointer< Self > Pointer;
44  typedef itk::SmartPointer< const Self > ConstPointer;
45 
47  itkNewMacro( Self );
48 
50  itkTypeMacro( TransformixFilter, itk::ImageSource );
51 
56  typedef ArgumentMapType::value_type ArgumentMapEntryType;
57 
58  typedef itk::ProcessObject::DataObjectPointer DataObjectPointer;
59  typedef itk::ProcessObject::DataObjectIdentifierType DataObjectIdentifierType;
62 
69 
70  typedef typename Superclass::OutputImageType OutputImageType;
71  typedef typename itk::Image< itk::Vector< float, TMovingImage::ImageDimension >,
72  TMovingImage::ImageDimension > OutputDeformationFieldType;
73 
74  typedef typename TMovingImage::Pointer InputImagePointer;
75  typedef typename TMovingImage::ConstPointer InputImageConstPointer;
76 
77  itkStaticConstMacro( MovingImageDimension, unsigned int, TMovingImage::ImageDimension );
78 
80  virtual void SetMovingImage( TMovingImage * inputImage );
82  virtual void RemoveMovingImage( void );
83 
85  itkSetMacro( FixedPointSetFileName, std::string );
86  itkGetMacro( FixedPointSetFileName, std::string );
87  virtual void RemoveFixedPointSetFileName() { this->SetFixedPointSetFileName( "" ); }
88 
90  itkSetMacro( ComputeSpatialJacobian, bool );
91  itkGetConstMacro( ComputeSpatialJacobian, bool );
92  itkBooleanMacro( ComputeSpatialJacobian );
93 
95  itkSetMacro( ComputeDeterminantOfSpatialJacobian, bool );
96  itkGetConstMacro( ComputeDeterminantOfSpatialJacobian, bool );
97  itkBooleanMacro( ComputeDeterminantOfSpatialJacobian );
98 
100  itkSetMacro( ComputeDeformationField, bool );
101  itkGetConstMacro( ComputeDeformationField, bool );
102  itkBooleanMacro( ComputeDeformationField );
103 
105  virtual void SetTransformParameterObject( ParameterObjectPointer transformParameterObject );
106 
108 
110 
112 
114 
116  itkSetMacro( OutputDirectory, std::string );
117  itkGetConstMacro( OutputDirectory, std::string );
118  virtual void RemoveOutputDirectory() { this->SetOutputDirectory( "" ); }
119 
121  virtual void SetLogFileName( std::string logFileName );
122 
123  itkGetConstMacro( LogFileName, std::string );
124  virtual void RemoveLogFileName( void );
125 
127  itkSetMacro( LogToConsole, bool );
128  itkGetConstMacro( LogToConsole, bool );
129  itkBooleanMacro( LogToConsole );
130 
132  itkSetMacro( LogToFile, bool );
133  itkGetConstMacro( LogToFile, bool );
134  itkBooleanMacro( LogToFile );
135 
139  virtual DataObjectPointer MakeOutput( const DataObjectIdentifierType & key ) override;
140 
142  virtual void GenerateOutputInformation( void ) override;
143 
144 protected:
145 
147 
148  virtual void GenerateData( void ) override;
149 
150 private:
151 
152  TransformixFilter( const Self & ); // purposely not implemented
153  void operator=( const Self & ); // purposely not implemented
154 
156  static bool IsEmpty( const InputImagePointer inputImage );
157 
161  using itk::ProcessObject::SetInput;
162  using itk::ProcessObject::GetInput;
163  using itk::ProcessObject::RemoveInput;
164 
169 
170  std::string m_OutputDirectory;
171  std::string m_LogFileName;
172 
175 
176 };
177 
178 } // namespace elx
179 
180 #ifndef ITK_MANUAL_INSTANTIATION
181 #include "elxTransformixFilter.hxx"
182 #endif
183 
184 #endif // elxTransformixFilter_h
std::map< ParameterKeyType, ParameterValueVectorType > ParameterMapType
itk::SmartPointer< const Self > ConstPointer
std::vector< ParameterValueType > ParameterValueVectorType
itk::SmartPointer< Self > Pointer
std::vector< ParameterMapType > ParameterMapVectorType
TransformixFilter(const Self &)
ParameterObjectType::ParameterMapType ParameterMapType
virtual void RemoveMovingImage(void)
ParameterObjectType::ParameterValueVectorType ParameterValueVectorType
static bool IsEmpty(const InputImagePointer inputImage)
itk::ProcessObject::DataObjectIdentifierType DataObjectIdentifierType
TransformixMainType::DataObjectContainerType DataObjectContainerType
virtual void GenerateData(void) override
const ParameterObjectType * GetTransformParameterObject(void) const
TMovingImage::Pointer InputImagePointer
itkStaticConstMacro(MovingImageDimension, unsigned int, TMovingImage::ImageDimension)
ParameterObjectType::ConstPointer ParameterObjectConstPointer
ParameterObjectType * GetTransformParameterObject(void)
elastix::TransformixMain TransformixMainType
itk::SmartPointer< Self > Pointer
virtual void RemoveLogFileName(void)
virtual void RemoveFixedPointSetFileName()
TransformixMainType::Pointer TransformixMainPointer
itk::ProcessObject::DataObjectPointer DataObjectPointer
virtual DataObjectPointer MakeOutput(const DataObjectIdentifierType &key) override
itk::Image< itk::Vector< float, TMovingImage::ImageDimension >, TMovingImage::ImageDimension > OutputDeformationFieldType
virtual void SetMovingImage(TMovingImage *inputImage)
OutputDeformationFieldType * GetOutputDeformationField(void)
ParameterObjectType::ParameterMapVectorType ParameterMapVectorType
virtual void GenerateOutputInformation(void) override
TransformixMainType::DataObjectContainerPointer DataObjectContainerPointer
ArgumentMapType::value_type ArgumentMapEntryType
virtual void SetLogFileName(std::string logFileName)
const OutputDeformationFieldType * GetOutputDeformationField(void) const
itk::SmartPointer< const Self > ConstPointer
Superclass::OutputImageType OutputImageType
ParameterObjectType::Pointer ParameterObjectPointer
itk::ImageSource< TMovingImage > Superclass
TMovingImage::ConstPointer InputImageConstPointer
void operator=(const Self &)
InputImageConstPointer GetMovingImage(void)
TransformixMainType::ArgumentMapType ArgumentMapType
virtual void SetTransformParameterObject(ParameterObjectPointer transformParameterObject)
A class with all functionality to configure transformix.
Superclass::DataObjectContainerType DataObjectContainerType
itk::SmartPointer< Self > Pointer
Superclass::ArgumentMapType ArgumentMapType
Superclass::DataObjectContainerPointer DataObjectContainerPointer
#define ELASTIXLIB_API
Definition: elxMacro.h:301


Generated on 1667476801 for elastix by doxygen 1.9.1 elastix logo