Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itkPointSetToPointSetMetric.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkPointSetToPointSetMetric.h,v $ 00005 Language: C++ 00006 Date: $Date: 2003/11/08 17:58:32 $ 00007 Version: $Revision: 1.1 $ 00008 00009 Copyright (c) Insight Software Consortium. All rights reserved. 00010 See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 #ifndef __itkPointSetToPointSetMetric_h 00018 #define __itkPointSetToPointSetMetric_h 00019 00020 #include "itkImageBase.h" 00021 #include "itkTransform.h" 00022 #include "itkMultipleValuedCostFunction.h" 00023 #include "itkExceptionObject.h" 00024 #include "itkGradientRecursiveGaussianImageFilter.h" 00025 00026 namespace itk 00027 { 00028 00043 template <class TFixedPointSet, class TMovingPointSet> 00044 class ITK_EXPORT PointSetToPointSetMetric : public MultipleValuedCostFunction 00045 { 00046 public: 00047 00049 typedef PointSetToPointSetMetric Self; 00050 typedef MultipleValuedCostFunction Superclass; 00051 typedef SmartPointer<Self> Pointer; 00052 typedef SmartPointer<const Self> ConstPointer; 00053 00055 typedef Superclass::ParametersValueType CoordinateRepresentationType; 00056 00058 itkTypeMacro(PointSetToPointSetMetric, MultipleValuedCostFunction); 00059 00061 typedef TMovingPointSet MovingPointSetType; 00062 typedef typename TMovingPointSet::PixelType MovingPointSetPixelType; 00063 typedef typename MovingPointSetType::ConstPointer MovingPointSetConstPointer; 00064 00066 typedef TFixedPointSet FixedPointSetType; 00067 typedef typename FixedPointSetType::ConstPointer FixedPointSetConstPointer; 00068 00070 itkStaticConstMacro(MovingPointSetDimension, unsigned int, 00071 TMovingPointSet::PointDimension); 00072 itkStaticConstMacro(FixedPointSetDimension, unsigned int, 00073 TFixedPointSet::PointDimension); 00074 00075 typedef typename FixedPointSetType::PointsContainer::ConstIterator PointIterator; 00076 typedef typename FixedPointSetType::PointDataContainer::ConstIterator PointDataIterator; 00077 00079 typedef Transform<CoordinateRepresentationType, 00080 itkGetStaticConstMacro(MovingPointSetDimension), 00081 itkGetStaticConstMacro(FixedPointSetDimension)> TransformType; 00082 00083 typedef typename TransformType::Pointer TransformPointer; 00084 typedef typename TransformType::InputPointType InputPointType; 00085 typedef typename TransformType::OutputPointType OutputPointType; 00086 typedef typename TransformType::ParametersType TransformParametersType; 00087 typedef typename TransformType::JacobianType TransformJacobianType; 00088 00090 typedef Superclass::MeasureType MeasureType; 00091 00093 typedef Superclass::DerivativeType DerivativeType; 00094 00096 typedef Superclass::ParametersType ParametersType; 00097 00099 itkSetConstObjectMacro( FixedPointSet, FixedPointSetType ); 00100 00102 itkGetConstObjectMacro( FixedPointSet, FixedPointSetType ); 00103 00105 itkSetConstObjectMacro( MovingPointSet, MovingPointSetType ); 00106 00108 itkGetConstObjectMacro( MovingPointSet, MovingPointSetType ); 00109 00111 itkSetObjectMacro( Transform, TransformType ); 00112 00114 itkGetObjectMacro( Transform, TransformType ); 00115 00117 void SetTransformParameters( const ParametersType & parameters ) const; 00118 00120 unsigned int GetNumberOfParameters(void) const 00121 { return m_Transform->GetNumberOfParameters(); } 00122 00125 virtual void Initialize(void) throw ( ExceptionObject ); 00126 00127 protected: 00128 PointSetToPointSetMetric(); 00129 virtual ~PointSetToPointSetMetric() {}; 00130 void PrintSelf(std::ostream& os, Indent indent) const; 00131 00132 FixedPointSetConstPointer m_FixedPointSet; 00133 MovingPointSetConstPointer m_MovingPointSet; 00134 00135 mutable TransformPointer m_Transform; 00136 00137 private: 00138 PointSetToPointSetMetric(const Self&); //purposely not implemented 00139 void operator=(const Self&); //purposely not implemented 00140 00141 }; 00142 00143 } // end namespace itk 00144 00145 #ifndef ITK_MANUAL_INSTANTIATION 00146 #include "itkPointSetToPointSetMetric.txx" 00147 #endif 00148 00149 #endif 00150

Generated at Sun Apr 1 02:41:20 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000