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
22
23namespace itk
24{
25
41template< class TScalarType,
42unsigned int NInputDimensions = 3,
43unsigned int NOutputDimensions = 3 >
45 public AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
46{
47public:
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 OutputPointType TransformPoint( const InputPointType & ipp ) const override;
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
133 const InputPointType & ipp,
134 JacobianType & jac,
135 NonZeroJacobianIndicesType & nzji ) const override;
136
140 void SetParameters( const ParametersType & param ) override;
141
143 void SetFixedParameters( const ParametersType & ) override
144 {
145 // \todo: to be implemented by Stefan
146 }
147
148
150 const ParametersType & GetFixedParameters( void ) const override
151 {
152 // \todo: to be implemented by Stefan: check this:
153 return this->m_FixedParameters;
154 }
155
156
159 {
160 return this->m_TransformContainer.size();
161 }
162
163
166 itkSetMacro( NormalizeWeights, bool );
167 itkGetConstMacro( NormalizeWeights, bool );
168
170 virtual void SetTransformContainer( const TransformContainerType & transformContainer )
171 {
172 this->m_TransformContainer = transformContainer;
173 this->Modified();
174 }
175
176
187 {
188 return this->m_TransformContainer;
189 }
190
191
194 const InputPointType & ipp, SpatialJacobianType & sj ) const override
195 {
196 itkExceptionMacro( << "Not implemented for WeightedCombinationTransform" );
197 }
198
199
201 const InputPointType & ipp, SpatialHessianType & sh ) const override
202 {
203 itkExceptionMacro( << "Not implemented for WeightedCombinationTransform" );
204 }
205
206
209 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const override
210 {
211 itkExceptionMacro( << "Not implemented for WeightedCombinationTransform" );
212 }
213
214
216 const InputPointType & ipp, SpatialJacobianType & sj,
218 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const override
219 {
220 itkExceptionMacro( << "Not implemented for WeightedCombinationTransform" );
221 }
222
223
226 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const override
227 {
228 itkExceptionMacro( << "Not implemented for WeightedCombinationTransform" );
229 }
230
231
233 const InputPointType & ipp, SpatialHessianType & sh,
235 NonZeroJacobianIndicesType & nonZeroJacobianIndices ) const override
236 {
237 itkExceptionMacro( << "Not implemented for WeightedCombinationTransform" );
238 }
239
240
241protected:
242
245
248
251
252private:
253
254 WeightedCombinationTransform( const Self & ); // purposely not implemented
255 void operator=( const Self & ); // purposely not implemented
256
258
259};
260
261} // end namespace itk
262
263#ifndef ITK_MANUAL_INSTANTIATION
264#include "itkWeightedCombinationTransform.hxx"
265#endif
266
267#endif
Transform maps points, vectors and covariant vectors from an input space to an output space.
Superclass::OutputCovariantVectorType OutputCovariantVectorType
Superclass::OutputVectorType OutputVectorType
Superclass::ParametersType ParametersType
Superclass::InputCovariantVectorType InputCovariantVectorType
std::vector< SpatialHessianType > JacobianOfSpatialHessianType
Superclass::OutputVnlVectorType OutputVnlVectorType
Superclass::NumberOfParametersType NumberOfParametersType
Superclass::InputVectorType InputVectorType
std::vector< SpatialJacobianType > JacobianOfSpatialJacobianType
Superclass::OutputPointType OutputPointType
Superclass::JacobianType JacobianType
Superclass::InputPointType InputPointType
FixedArray< Matrix< ScalarType, InputSpaceDimension, InputSpaceDimension >, OutputSpaceDimension > SpatialHessianType
Superclass::ScalarType ScalarType
Superclass::InputVnlVectorType InputVnlVectorType
Matrix< ScalarType, OutputSpaceDimension, InputSpaceDimension > SpatialJacobianType
std::vector< unsigned long > NonZeroJacobianIndicesType
Implements a weighted linear combination of multiple transforms.
Superclass::JacobianOfSpatialJacobianType JacobianOfSpatialJacobianType
const ParametersType & GetFixedParameters(void) const override
void GetSpatialHessian(const InputPointType &ipp, SpatialHessianType &sh) const override
virtual void SetTransformContainer(const TransformContainerType &transformContainer)
void SetFixedParameters(const ParametersType &) override
Superclass::SpatialJacobianType SpatialJacobianType
itkStaticConstMacro(OutputSpaceDimension, unsigned int, NOutputDimensions)
Superclass::SpatialHessianType SpatialHessianType
itkStaticConstMacro(InputSpaceDimension, unsigned int, NInputDimensions)
Superclass::OutputVnlVectorType OutputVnlVectorType
void GetJacobianOfSpatialHessian(const InputPointType &ipp, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
void GetJacobianOfSpatialHessian(const InputPointType &ipp, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
void GetJacobianOfSpatialJacobian(const InputPointType &ipp, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
OutputCovariantVectorType TransformCovariantVector(const InputCovariantVectorType &) const override
OutputVnlVectorType TransformVector(const InputVnlVectorType &) const override
void SetParameters(const ParametersType &param) override
Transform< TScalarType, NInputDimensions, NOutputDimensions > TransformType
OutputPointType TransformPoint(const InputPointType &ipp) const override
Superclass::NumberOfParametersType NumberOfParametersType
Superclass::OutputCovariantVectorType OutputCovariantVectorType
void GetSpatialJacobian(const InputPointType &ipp, SpatialJacobianType &sj) const override
void GetJacobian(const InputPointType &ipp, JacobianType &jac, NonZeroJacobianIndicesType &nzji) const override
OutputVectorType TransformVector(const InputVectorType &) const override
Superclass::InputVnlVectorType InputVnlVectorType
Superclass::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
Superclass::InputCovariantVectorType InputCovariantVectorType
void GetJacobianOfSpatialJacobian(const InputPointType &ipp, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
NumberOfParametersType GetNumberOfParameters(void) const override
WeightedCombinationTransform(const Self &)
const TransformContainerType & GetTransformContainer(void) const
std::vector< TransformPointer > TransformContainerType
Superclass::JacobianOfSpatialHessianType JacobianOfSpatialHessianType
AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions > Superclass


Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo