go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkWeightedCombinationTransform.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 __itkWeightedCombinationTransform_h
19 #define __itkWeightedCombinationTransform_h
20 
21 #include "itkAdvancedTransform.h"
22 
23 namespace itk
24 {
25 
41 template< class TScalarType,
42 unsigned int NInputDimensions = 3,
43 unsigned int NOutputDimensions = 3 >
45  public AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
46 {
47 public:
48 
52  NInputDimensions,
53  NOutputDimensions > Superclass;
55  typedef SmartPointer< const Self > ConstPointer;
56 
58  itkNewMacro( Self );
59 
62 
64  itkStaticConstMacro( InputSpaceDimension, unsigned int, NInputDimensions );
65  itkStaticConstMacro( OutputSpaceDimension, unsigned int, NOutputDimensions );
66 
74  typedef typename Superclass
76  typedef typename Superclass
82  typedef typename
85  typedef typename
88  typedef typename Superclass
90 
92  typedef Transform< TScalarType,
93  NInputDimensions,
94  NOutputDimensions > TransformType;
96  typedef typename TransformType::Pointer TransformPointer;
97  typedef std::vector< TransformPointer > TransformContainerType;
98 
100  virtual OutputPointType TransformPoint( const InputPointType & ipp ) const;
101 
104  {
105  itkExceptionMacro(
106  << "TransformVector(const InputVectorType &) is not implemented "
107  << "for WeightedCombinationTransform" );
108  }
109 
110 
112  {
113  itkExceptionMacro(
114  << "TransformVector(const InputVnlVectorType &) is not implemented "
115  << "for WeightedCombinationTransform" );
116  }
117 
118 
120  {
121  itkExceptionMacro(
122  << "TransformCovariantVector(const InputCovariantVectorType &) is not implemented "
123  << "for WeightedCombinationTransform" );
124  }
125 
126 
132  virtual void GetJacobian(
133  const InputPointType & ipp,
134  JacobianType & jac,
135  NonZeroJacobianIndicesType & nzji ) const;
136 
140  virtual void SetParameters( const ParametersType & param );
141 
143  itkGetConstReferenceMacro( Parameters, ParametersType );
144 
146  virtual void SetFixedParameters( const ParametersType & )
147  {
148  // \todo: to be implemented by Stefan
149  }
150 
151 
153  virtual const ParametersType & GetFixedParameters( void ) const
154  {
155  // \todo: to be implemented by Stefan: check this:
156  return this->m_FixedParameters;
157  }
158 
159 
162  {
163  return this->m_TransformContainer.size();
164  }
165 
166 
169  itkSetMacro( NormalizeWeights, bool );
170  itkGetConstMacro( NormalizeWeights, bool );
171 
173  virtual void SetTransformContainer( const TransformContainerType & transformContainer )
174  {
175  this->m_TransformContainer = transformContainer;
176  this->Modified();
177  }
178 
179 
190  {
191  return this->m_TransformContainer;
192  }
193 
194 
196  virtual void GetSpatialJacobian(
197  const InputPointType & ipp, SpatialJacobianType & sj ) const
198  {
199  itkExceptionMacro( << "Not implemented for WeightedCombinationTransform" );
200  }
201 
202 
203  virtual void GetSpatialHessian(
204  const InputPointType & ipp, SpatialHessianType & sh ) const
205  {
206  itkExceptionMacro( << "Not implemented for WeightedCombinationTransform" );
207  }
208 
209 
212  NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const
213  {
214  itkExceptionMacro( << "Not implemented for WeightedCombinationTransform" );
215  }
216 
217 
219  const InputPointType & ipp, SpatialJacobianType & sj,
221  NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const
222  {
223  itkExceptionMacro( << "Not implemented for WeightedCombinationTransform" );
224  }
225 
226 
228  const InputPointType & ipp, JacobianOfSpatialHessianType & jsh,
229  NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const
230  {
231  itkExceptionMacro( << "Not implemented for WeightedCombinationTransform" );
232  }
233 
234 
236  const InputPointType & ipp, SpatialHessianType & sh,
238  NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const
239  {
240  itkExceptionMacro( << "Not implemented for WeightedCombinationTransform" );
241  }
242 
243 
244 protected:
245 
248 
251 
254 
255 private:
256 
257  WeightedCombinationTransform( const Self & ); // purposely not implemented
258  void operator=( const Self & ); // purposely not implemented
259 
261 
262 };
263 
264 } // end namespace itk
265 
266 #ifndef ITK_MANUAL_INSTANTIATION
267 #include "itkWeightedCombinationTransform.hxx"
268 #endif
269 
270 #endif
itk::WeightedCombinationTransform::SetTransformContainer
virtual void SetTransformContainer(const TransformContainerType &transformContainer)
Definition: itkWeightedCombinationTransform.h:173
itk::WeightedCombinationTransform
Implements a weighted linear combination of multiple transforms.
Definition: itkWeightedCombinationTransform.h:46
itk::AdvancedTransform::OutputPointType
Superclass::OutputPointType OutputPointType
Definition: itkAdvancedTransform.h:125
itk::WeightedCombinationTransform::TransformVector
virtual OutputVnlVectorType TransformVector(const InputVnlVectorType &) const
Definition: itkWeightedCombinationTransform.h:111
itk::AdvancedTransform::SpatialJacobianType
Matrix< ScalarType, OutputSpaceDimension, InputSpaceDimension > SpatialJacobianType
Definition: itkAdvancedTransform.h:143
itk::WeightedCombinationTransform::OutputCovariantVectorType
Superclass ::OutputCovariantVectorType OutputCovariantVectorType
Definition: itkWeightedCombinationTransform.h:77
itkAdvancedTransform.h
itk::WeightedCombinationTransform::TransformContainerType
std::vector< TransformPointer > TransformContainerType
Definition: itkWeightedCombinationTransform.h:97
itk::AdvancedTransform::InputCovariantVectorType
Superclass ::InputCovariantVectorType InputCovariantVectorType
Definition: itkAdvancedTransform.h:119
itk::AdvancedTransform::InputPointType
Superclass::InputPointType InputPointType
Definition: itkAdvancedTransform.h:124
SmartPointer< Self >
itk::WeightedCombinationTransform::TransformVector
virtual OutputVectorType TransformVector(const InputVectorType &) const
Definition: itkWeightedCombinationTransform.h:103
itk::AdvancedTransform::InputVnlVectorType
Superclass::InputVnlVectorType InputVnlVectorType
Definition: itkAdvancedTransform.h:122
itk::AdvancedTransform::JacobianOfSpatialHessianType
std::vector< SpatialHessianType > JacobianOfSpatialHessianType
Definition: itkAdvancedTransform.h:150
itk::WeightedCombinationTransform::Superclass
AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions > Superclass
Definition: itkWeightedCombinationTransform.h:53
itk::WeightedCombinationTransform::NonZeroJacobianIndicesType
Superclass::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
Definition: itkWeightedCombinationTransform.h:83
itk::WeightedCombinationTransform::GetSpatialJacobian
virtual void GetSpatialJacobian(const InputPointType &ipp, SpatialJacobianType &sj) const
Definition: itkWeightedCombinationTransform.h:196
itk::WeightedCombinationTransform::GetJacobianOfSpatialHessian
virtual void GetJacobianOfSpatialHessian(const InputPointType &ipp, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
Definition: itkWeightedCombinationTransform.h:235
itk::AdvancedTransform::ScalarType
Superclass::ScalarType ScalarType
Definition: itkAdvancedTransform.h:109
itk::WeightedCombinationTransform::JacobianType
Superclass::JacobianType JacobianType
Definition: itkWeightedCombinationTransform.h:71
itk::WeightedCombinationTransform::GetTransformContainer
const TransformContainerType & GetTransformContainer(void) const
Definition: itkWeightedCombinationTransform.h:189
itk::WeightedCombinationTransform::ParametersType
Superclass::ParametersType ParametersType
Definition: itkWeightedCombinationTransform.h:69
itk::WeightedCombinationTransform::Self
WeightedCombinationTransform Self
Definition: itkWeightedCombinationTransform.h:50
itk::WeightedCombinationTransform::~WeightedCombinationTransform
virtual ~WeightedCombinationTransform()
Definition: itkWeightedCombinationTransform.h:247
itk::WeightedCombinationTransform::OutputVnlVectorType
Superclass::OutputVnlVectorType OutputVnlVectorType
Definition: itkWeightedCombinationTransform.h:79
itk::WeightedCombinationTransform::GetJacobianOfSpatialJacobian
virtual void GetJacobianOfSpatialJacobian(const InputPointType &ipp, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
Definition: itkWeightedCombinationTransform.h:218
itk::WeightedCombinationTransform::InputVectorType
Superclass::InputVectorType InputVectorType
Definition: itkWeightedCombinationTransform.h:72
itk::WeightedCombinationTransform::OutputVectorType
Superclass::OutputVectorType OutputVectorType
Definition: itkWeightedCombinationTransform.h:73
itk::AdvancedTransform::JacobianType
Superclass::JacobianType JacobianType
Definition: itkAdvancedTransform.h:115
itk::WeightedCombinationTransform::OutputPointType
Superclass::OutputPointType OutputPointType
Definition: itkWeightedCombinationTransform.h:81
itk::AdvancedTransform
Transform maps points, vectors and covariant vectors from an input space to an output space.
Definition: itkAdvancedTransform.h:87
itk::WeightedCombinationTransform::JacobianOfSpatialHessianType
Superclass ::JacobianOfSpatialHessianType JacobianOfSpatialHessianType
Definition: itkWeightedCombinationTransform.h:89
itk::WeightedCombinationTransform::itkStaticConstMacro
itkStaticConstMacro(InputSpaceDimension, unsigned int, NInputDimensions)
itk::WeightedCombinationTransform::ScalarType
Superclass::ScalarType ScalarType
Definition: itkWeightedCombinationTransform.h:68
itk::WeightedCombinationTransform::TransformType
Transform< TScalarType, NInputDimensions, NOutputDimensions > TransformType
Definition: itkWeightedCombinationTransform.h:94
itk::WeightedCombinationTransform::SpatialHessianType
Superclass::SpatialHessianType SpatialHessianType
Definition: itkWeightedCombinationTransform.h:87
itk::AdvancedTransform::SpatialHessianType
FixedArray< Matrix< ScalarType, InputSpaceDimension, InputSpaceDimension >, OutputSpaceDimension > SpatialHessianType
Definition: itkAdvancedTransform.h:149
itk::WeightedCombinationTransform::SetFixedParameters
virtual void SetFixedParameters(const ParametersType &)
Definition: itkWeightedCombinationTransform.h:146
itk::WeightedCombinationTransform::InputVnlVectorType
Superclass::InputVnlVectorType InputVnlVectorType
Definition: itkWeightedCombinationTransform.h:78
itk::AdvancedTransform::InputVectorType
Superclass::InputVectorType InputVectorType
Definition: itkAdvancedTransform.h:116
itk::WeightedCombinationTransform::itkStaticConstMacro
itkStaticConstMacro(OutputSpaceDimension, unsigned int, NOutputDimensions)
itk::WeightedCombinationTransform::TransformCovariantVector
virtual OutputCovariantVectorType TransformCovariantVector(const InputCovariantVectorType &) const
Definition: itkWeightedCombinationTransform.h:119
itk::WeightedCombinationTransform::SpatialJacobianType
Superclass::SpatialJacobianType SpatialJacobianType
Definition: itkWeightedCombinationTransform.h:84
itk::WeightedCombinationTransform::GetSpatialHessian
virtual void GetSpatialHessian(const InputPointType &ipp, SpatialHessianType &sh) const
Definition: itkWeightedCombinationTransform.h:203
itk::WeightedCombinationTransform::m_NonZeroJacobianIndices
NonZeroJacobianIndicesType m_NonZeroJacobianIndices
Definition: itkWeightedCombinationTransform.h:253
itk::AdvancedTransform::JacobianOfSpatialJacobianType
std::vector< SpatialJacobianType > JacobianOfSpatialJacobianType
Definition: itkAdvancedTransform.h:144
itk::AdvancedTransform::NonZeroJacobianIndicesType
std::vector< unsigned long > NonZeroJacobianIndicesType
Definition: itkAdvancedTransform.h:141
itk::WeightedCombinationTransform::InputPointType
Superclass::InputPointType InputPointType
Definition: itkWeightedCombinationTransform.h:80
itk::WeightedCombinationTransform::m_TransformContainer
TransformContainerType m_TransformContainer
Definition: itkWeightedCombinationTransform.h:249
itk::WeightedCombinationTransform::TransformPoint
virtual OutputPointType TransformPoint(const InputPointType &ipp) const
itk
Definition: itkAdvancedImageToImageMetric.h:40
itk::AdvancedTransform::OutputVectorType
Superclass::OutputVectorType OutputVectorType
Definition: itkAdvancedTransform.h:117
itk::WeightedCombinationTransform::GetJacobianOfSpatialHessian
virtual void GetJacobianOfSpatialHessian(const InputPointType &ipp, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
Definition: itkWeightedCombinationTransform.h:227
itk::WeightedCombinationTransform::SetParameters
virtual void SetParameters(const ParametersType &param)
itk::WeightedCombinationTransform::NumberOfParametersType
Superclass::NumberOfParametersType NumberOfParametersType
Definition: itkWeightedCombinationTransform.h:70
itk::WeightedCombinationTransform::Pointer
SmartPointer< Self > Pointer
Definition: itkWeightedCombinationTransform.h:54
itk::WeightedCombinationTransform::GetJacobian
virtual void GetJacobian(const InputPointType &ipp, JacobianType &jac, NonZeroJacobianIndicesType &nzji) const
itk::WeightedCombinationTransform::TransformPointer
TransformType::Pointer TransformPointer
Definition: itkWeightedCombinationTransform.h:96
itk::AdvancedTransform::NumberOfParametersType
Superclass::NumberOfParametersType NumberOfParametersType
Definition: itkAdvancedTransform.h:113
itk::WeightedCombinationTransform::InputCovariantVectorType
Superclass ::InputCovariantVectorType InputCovariantVectorType
Definition: itkWeightedCombinationTransform.h:75
itk::WeightedCombinationTransform::GetNumberOfParameters
virtual NumberOfParametersType GetNumberOfParameters(void) const
Definition: itkWeightedCombinationTransform.h:161
TScalarType
itk::WeightedCombinationTransform::GetJacobianOfSpatialJacobian
virtual void GetJacobianOfSpatialJacobian(const InputPointType &ipp, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
Definition: itkWeightedCombinationTransform.h:210
itk::AdvancedTransform::ParametersType
Superclass::ParametersType ParametersType
Definition: itkAdvancedTransform.h:110
itk::WeightedCombinationTransform::JacobianOfSpatialJacobianType
Superclass::JacobianOfSpatialJacobianType JacobianOfSpatialJacobianType
Definition: itkWeightedCombinationTransform.h:86
itk::WeightedCombinationTransform::ConstPointer
SmartPointer< const Self > ConstPointer
Definition: itkWeightedCombinationTransform.h:55
itk::WeightedCombinationTransform::WeightedCombinationTransform
WeightedCombinationTransform()
itk::WeightedCombinationTransform::m_NormalizeWeights
bool m_NormalizeWeights
Definition: itkWeightedCombinationTransform.h:260
itk::WeightedCombinationTransform::m_SumOfWeights
double m_SumOfWeights
Definition: itkWeightedCombinationTransform.h:250
itk::AdvancedTransform::OutputVnlVectorType
Superclass::OutputVnlVectorType OutputVnlVectorType
Definition: itkAdvancedTransform.h:123
itk::WeightedCombinationTransform::WeightedCombinationTransform
WeightedCombinationTransform(const Self &)
itk::WeightedCombinationTransform::operator=
void operator=(const Self &)
itk::WeightedCombinationTransform::GetFixedParameters
virtual const ParametersType & GetFixedParameters(void) const
Definition: itkWeightedCombinationTransform.h:153
itk::AdvancedTransform::OutputCovariantVectorType
Superclass ::OutputCovariantVectorType OutputCovariantVectorType
Definition: itkAdvancedTransform.h:121


Generated on OURCE_DATE_EPOCH for elastix by doxygen 1.8.18 elastix logo