00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkGradientImageToBloxBoundaryPointImageFilter.h,v $ 00005 Language: C++ 00006 Date: $Date: 2009-04-25 12:27:22 $ 00007 Version: $Revision: 1.7 $ 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 __itkGradientImageToBloxBoundaryPointImageFilter_h 00018 #define __itkGradientImageToBloxBoundaryPointImageFilter_h 00019 00020 #include "itkBloxBoundaryPointImage.h" 00021 #include "itkImageToImageFilter.h" 00022 #include "itkSize.h" 00023 00024 namespace itk 00025 { 00026 00035 template<typename TInputImage> 00036 class ITK_EXPORT GradientImageToBloxBoundaryPointImageFilter : 00037 public ImageToImageFilter<TInputImage, BloxBoundaryPointImage< ::itk::GetImageDimension<TInputImage>::ImageDimension> > 00038 { 00039 public: 00041 itkStaticConstMacro(NDimensions, unsigned int, TInputImage::ImageDimension); 00042 00044 typedef GradientImageToBloxBoundaryPointImageFilter Self; 00045 typedef ImageToImageFilter<TInputImage, 00046 BloxBoundaryPointImage<itkGetStaticConstMacro(NDimensions)> > Superclass; 00047 typedef SmartPointer<Self> Pointer; 00048 typedef SmartPointer<const Self> ConstPointer; 00049 00051 itkNewMacro(Self); 00052 00054 itkTypeMacro( GradientImageToBloxBoundaryPointImageFilter, ImageToImageFilter ); 00055 00057 typedef TInputImage InputImageType; 00058 typedef BloxBoundaryPointImage<itkGetStaticConstMacro(NDimensions)> TOutputImage; 00059 typedef BloxBoundaryPointImage<itkGetStaticConstMacro(NDimensions)> OutputImageType; 00060 typedef typename OutputImageType::Pointer OutputImagePointer; 00061 typedef typename InputImageType::Pointer InputImagePointer; 00062 typedef typename InputImageType::ConstPointer InputImageConstPointer; 00064 00066 typedef Size<itkGetStaticConstMacro(NDimensions)> SizeType; 00067 00069 typedef typename TOutputImage::IndexType IndexType; 00070 00072 typedef typename TOutputImage::PixelType PixelType; 00073 00075 typedef typename TOutputImage::RegionType OutputImageRegionType; 00076 00078 typedef Point<double, itkGetStaticConstMacro(NDimensions)> TPositionType; 00079 00081 itkSetMacro(Threshold, double); 00082 itkGetConstMacro(Threshold, double); 00084 00089 void SetBloxResolution( float bloxResolution[] ); 00090 void SetBloxResolution( float bloxResolution ); 00092 00093 void GenerateInputRequestedRegion(); 00094 00095 virtual void GenerateOutputInformation(); 00096 00097 protected: 00098 GradientImageToBloxBoundaryPointImageFilter(); 00099 virtual ~GradientImageToBloxBoundaryPointImageFilter() {}; 00100 void PrintSelf(std::ostream& os, Indent indent) const; 00101 00103 void GenerateData(); 00104 00105 private: 00106 GradientImageToBloxBoundaryPointImageFilter(const Self&); //purposely not implemented 00107 void operator=(const Self&); //purposely not implemented 00108 00111 double m_Threshold; 00112 00114 float m_BloxResolution[NDimensions]; 00115 }; 00116 00117 } // end namespace itk 00118 00119 #ifndef ITK_MANUAL_INSTANTIATION 00120 #include "itkGradientImageToBloxBoundaryPointImageFilter.txx" 00121 #endif 00122 00123 #endif 00124