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

itkGeodesicActiveContourLevelSetFunction.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkGeodesicActiveContourLevelSetFunction.h,v $ 00005 Language: C++ 00006 Date: $Date: 2003/09/10 14:28:30 $ 00007 Version: $Revision: 1.9 $ 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 __itkGeodesicActiveContourLevelSetFunction_h_ 00018 #define __itkGeodesicActiveContourLevelSetFunction_h_ 00019 00020 #include "itkSegmentationLevelSetFunction.h" 00021 00022 namespace itk { 00023 00074 template <class TImageType, class TFeatureImageType = TImageType> 00075 class ITK_EXPORT GeodesicActiveContourLevelSetFunction 00076 : public SegmentationLevelSetFunction<TImageType, TFeatureImageType> 00077 { 00078 public: 00080 typedef GeodesicActiveContourLevelSetFunction Self; 00081 typedef SegmentationLevelSetFunction<TImageType, TFeatureImageType> Superclass; 00082 typedef SmartPointer<Self> Pointer; 00083 typedef SmartPointer<const Self> ConstPointer; 00084 typedef TFeatureImageType FeatureImageType; 00085 00087 itkNewMacro(Self); 00088 00090 itkTypeMacro( GeodesicActiveContourLevelSetFunction, SegmentationLevelSetFunction ); 00091 00093 typedef typename Superclass::ImageType ImageType; 00094 typedef typename Superclass::NeighborhoodType NeighborhoodType; 00095 typedef typename Superclass::ScalarValueType ScalarValueType; 00096 typedef typename Superclass::FeatureScalarType FeatureScalarType; 00097 typedef typename Superclass::RadiusType RadiusType; 00098 typedef typename Superclass::FloatOffsetType FloatOffsetType; 00099 typedef typename Superclass::VectorImageType VectorImageType; 00100 typedef typename Superclass::GlobalDataStruct GlobalDataStruct; 00101 00103 itkStaticConstMacro(ImageDimension, unsigned int, 00104 Superclass::ImageDimension); 00105 00107 virtual void CalculateSpeedImage(); 00108 00110 virtual void CalculateAdvectionImage(); 00111 00113 virtual ScalarValueType CurvatureSpeed(const NeighborhoodType & neighborhood, 00114 const FloatOffsetType & offset, GlobalDataStruct *gd ) const 00115 { return PropagationSpeed( neighborhood, offset, gd ); } 00116 00119 void SetDerivativeSigma( const double v ) 00120 { m_DerivativeSigma = v; } 00121 double GetDerivativeSigma() 00122 { return m_DerivativeSigma; }; 00123 00124 virtual void Initialize(const RadiusType &r) 00125 { 00126 Superclass::Initialize(r); 00127 00128 this->SetAdvectionWeight( NumericTraits<ScalarValueType>::One ); 00129 this->SetPropagationWeight( NumericTraits<ScalarValueType>::One ); 00130 this->SetCurvatureWeight( NumericTraits<ScalarValueType>::One ); 00131 } 00132 00133 protected: 00134 GeodesicActiveContourLevelSetFunction() 00135 { 00136 this->SetAdvectionWeight( NumericTraits<ScalarValueType>::One ); 00137 this->SetPropagationWeight( NumericTraits<ScalarValueType>::One ); 00138 this->SetCurvatureWeight( NumericTraits<ScalarValueType>::One ); 00139 00140 m_DerivativeSigma = 1.0; 00141 } 00142 virtual ~GeodesicActiveContourLevelSetFunction() {} 00143 00144 GeodesicActiveContourLevelSetFunction(const Self&); //purposely not implemented 00145 void operator=(const Self&); //purposely not implemented 00146 00147 void PrintSelf(std::ostream& os, Indent indent) const 00148 { 00149 Superclass::PrintSelf(os, indent ); 00150 os << indent << "DerivativeSigma: " << m_DerivativeSigma << std::endl; 00151 } 00152 00153 private: 00154 00155 double m_DerivativeSigma; 00156 00157 }; 00158 00159 } // end namespace itk 00160 00161 #ifndef ITK_MANUAL_INSTANTIATION 00162 #include "itkGeodesicActiveContourLevelSetFunction.txx" 00163 #endif 00164 00165 #endif

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