18 #ifndef itkImageTransformHelper_h 19 #define itkImageTransformHelper_h 32 template<
unsigned int NImageDimension,
unsigned int R,
unsigned int C,
typename TPo
intValue =
double,
typename TMatrixValue=
double >
33 class ImageTransformHelper
54 const MatrixType & matrix,
const OriginType & origin,
55 const IndexType & index, DoublePoint & point)
65 const MatrixType & matrix,
const OriginType & origin,
66 const IndexType & index, DoublePoint & point,
67 const UniqueTypeBoolFalse &)
86 const MatrixType &,
const OriginType &,
87 const IndexType &, DoublePoint &,
88 const UniqueTypeBoolTrue &)
94 const MatrixType & matrix,
95 const IndexType & index, DoublePoint & point,
96 const UniqueTypeBoolFalse &)
98 point[R] = point[R] + matrix[R][C] * index[C];
110 const IndexType &, DoublePoint &,
111 const UniqueTypeBoolTrue &)
118 const MatrixType & matrix,
const OriginType & origin,
119 const DoublePoint & point, IndexType & index)
126 point, rindex, index,
131 const MatrixType & matrix,
const OriginType & origin,
132 const DoublePoint & point, DoublePoint & rindex, IndexType & index,
133 const UniqueTypeBoolFalse &)
140 point, rindex, index,
146 point, rindex, index,
151 const MatrixType &,
const OriginType &,
152 const DoublePoint &, DoublePoint &, IndexType &,
153 const UniqueTypeBoolTrue &)
159 const MatrixType & matrix,
const OriginType & origin,
160 const DoublePoint & point, DoublePoint & rindex, IndexType & index,
161 const UniqueTypeBoolFalse &)
163 rindex[R] = rindex[R] + matrix[R][C] * ( point[C] - origin[C] );
169 point, rindex, index,
174 const MatrixType &,
const OriginType &,
175 const DoublePoint &, DoublePoint & rindex, IndexType & index,
176 const UniqueTypeBoolTrue &)
178 index[R] = Math::RoundHalfIntegerUp< IndexValueType >(rindex[R]);
189 const MatrixType & matrix,
const OriginType & origin,
190 const IndexType & index, FloatPoint & point)
200 const MatrixType & matrix,
const OriginType & origin,
201 const IndexType & index, FloatPoint & point,
202 const UniqueTypeBoolFalse &)
204 point[R] = origin[R];
221 const MatrixType &,
const OriginType &,
222 const IndexType &, FloatPoint &,
223 const UniqueTypeBoolTrue &)
229 const MatrixType & matrix,
230 const IndexType & index, FloatPoint & point,
231 const UniqueTypeBoolFalse &)
233 point[R] = point[R] + matrix[R][C] * index[C];
245 const IndexType &, FloatPoint &,
246 const UniqueTypeBoolTrue &)
253 const MatrixType & matrix,
const OriginType & origin,
254 const FloatPoint & point, IndexType & index)
261 point, rindex, index,
266 const MatrixType & matrix,
const OriginType & origin,
267 const FloatPoint & point, FloatPoint & rindex, IndexType & index,
268 const UniqueTypeBoolFalse &)
275 point, rindex, index,
281 point, rindex, index,
286 const MatrixType &,
const OriginType &,
287 const FloatPoint &, FloatPoint &, IndexType &,
288 const UniqueTypeBoolTrue &)
294 const MatrixType & matrix,
const OriginType & origin,
295 const FloatPoint & point, FloatPoint & rindex, IndexType & index,
296 const UniqueTypeBoolFalse &)
298 rindex[R] = rindex[R] + matrix[R][C] * ( point[C] - origin[C] );
304 point, rindex, index,
309 const MatrixType &,
const OriginType &,
310 const FloatPoint &, FloatPoint & rindex, IndexType & index,
311 const UniqueTypeBoolTrue &)
313 index[R] = Math::RoundHalfIntegerUp< IndexValueType >(rindex[R]);
A templated class holding a M x N size Matrix.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes...
Base class for templated image classes.