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

itkHoughTransform2DCirclesImageFilter.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkHoughTransform2DCirclesImageFilter.h,v $ 00005 Language: C++ 00006 Date: $Date: 2004/01/14 12:17:42 $ 00007 Version: $Revision: 1.8 $ 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 __itkHoughTransform2DCirclesImageFilter_h 00018 #define __itkHoughTransform2DCirclesImageFilter_h 00019 00020 #ifdef _MSC_VER 00021 #pragma warning ( disable : 4786 ) 00022 #endif 00023 00024 #include "itkImageToImageFilter.h" 00025 #include "itkImage.h" 00026 #include "itkEllipseSpatialObject.h" 00027 00028 namespace itk 00029 { 00030 00052 template<typename TInputPixelType, typename TOutputPixelType> 00053 class ITK_EXPORT HoughTransform2DCirclesImageFilter : 00054 public ImageToImageFilter< Image<TInputPixelType,2>, Image<TOutputPixelType,2> > 00055 { 00056 public: 00057 00059 typedef HoughTransform2DCirclesImageFilter Self; 00060 00062 typedef Image<TInputPixelType,2> InputImageType; 00063 typedef typename InputImageType::Pointer InputImagePointer; 00064 typedef typename InputImageType::ConstPointer InputImageConstPointer; 00065 00067 typedef Image<TOutputPixelType,2> OutputImageType; 00068 typedef typename OutputImageType::Pointer OutputImagePointer; 00069 00070 00072 typedef ImageToImageFilter< Image<TInputPixelType,2> 00073 , Image<TOutputPixelType,2> > Superclass; 00074 00076 typedef SmartPointer<Self> Pointer; 00077 typedef SmartPointer<const Self> ConstPointer; 00078 00080 typedef typename InputImageType::IndexType IndexType; 00081 00083 typedef typename InputImageType::PixelType PixelType; 00084 00086 typedef typename InputImageType::RegionType OutputImageRegionType; 00087 00089 typedef EllipseSpatialObject<2> CircleType; 00090 typedef typename CircleType::Pointer CirclePointer; 00091 typedef std::list<CirclePointer> CirclesListType; 00092 00094 itkTypeMacro( HoughTransform2DCirclesImageFilter, ImageToImageFilter ); 00095 00097 itkNewMacro(Self); 00098 00100 void GenerateData(); 00101 00103 void SetRadius(double radius); 00104 00106 itkSetMacro(MinimumRadius,double); 00107 00109 itkSetMacro(MaximumRadius,double); 00110 00113 itkSetMacro(Threshold,double); 00114 00116 itkGetMacro(Threshold,double); 00117 00119 itkGetObjectMacro(RadiusImage,OutputImageType); 00120 00122 itkSetMacro(SigmaGradient,double); 00123 00125 itkGetMacro(SigmaGradient,double); 00126 00128 CirclesListType & GetCircles(unsigned int n=0); 00129 00131 itkSetMacro(NumberOfCircles,unsigned int); 00132 itkGetMacro(NumberOfCircles,unsigned int); 00133 00136 itkSetMacro(DiscRadiusRatio,float); 00137 itkGetMacro(DiscRadiusRatio,float); 00138 00140 itkSetMacro(Variance,float); 00141 itkGetMacro(Variance,float); 00142 00144 itkSetMacro(SweepAngle,float); 00145 itkGetMacro(SweepAngle,float); 00146 00147 protected: 00148 00149 HoughTransform2DCirclesImageFilter(); 00150 virtual ~HoughTransform2DCirclesImageFilter() {}; 00151 00152 HoughTransform2DCirclesImageFilter(const Self&) {} 00153 void operator=(const Self&) {} 00154 00155 void PrintSelf(std::ostream& os, Indent indent) const; 00156 00160 void GenerateInputRequestedRegion(); 00161 00166 void EnlargeOutputRequestedRegion(DataObject *itkNotUsed(output)); 00167 00168 private: 00169 00170 float m_SweepAngle; 00171 double m_MinimumRadius; 00172 double m_MaximumRadius; 00173 double m_Threshold; 00174 double m_SigmaGradient; 00175 OutputImagePointer m_RadiusImage; 00176 CirclesListType m_CirclesList; 00177 unsigned int m_NumberOfCircles; 00178 float m_DiscRadiusRatio; 00179 float m_Variance; 00180 unsigned long m_OldModifiedTime; 00181 unsigned long m_OldNumberOfCircles; 00182 00183 }; 00184 00185 } // end namespace itk 00186 00187 #ifndef ITK_MANUAL_INSTANTIATION 00188 #include "itkHoughTransform2DCirclesImageFilter.txx" 00189 #endif 00190 00191 #endif

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