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

itkWatershedEquivalenceRelabeler.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Insight Segmentation & Registration Toolkit 00004 Module: $RCSfile: itkWatershedEquivalenceRelabeler.h,v $ 00005 Language: C++ 00006 Date: $Date: 2003/09/10 14:28:41 $ 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 __itkWatershedEquivalenceRelabeler_h 00018 #define __itkWatershedEquivalenceRelabeler_h 00019 00020 #include "itkEquivalencyTable.h" 00021 #include "itkWatershedSegmenter.h" 00022 #include "itkImage.h" 00023 00024 namespace itk 00025 { 00026 namespace watershed 00027 { 00051 template <class TScalarType, unsigned int TImageDimension> 00052 class ITK_EXPORT EquivalenceRelabeler 00053 : public ProcessObject 00054 { 00055 public: 00057 itkStaticConstMacro(ImageDimension, unsigned int,TImageDimension); 00058 00060 typedef Image<unsigned long, TImageDimension> ImageType; 00061 typedef EquivalenceRelabeler Self; 00062 typedef ProcessObject Superclass; 00063 typedef TScalarType ScalarType; 00064 typedef EquivalencyTable EquivalencyTableType; 00065 typedef Segmenter<Image<ScalarType, TImageDimension> > SegmenterType; 00066 typedef DataObject::Pointer DataObjectPointer; 00067 00069 typedef SmartPointer<Self> Pointer; 00070 typedef SmartPointer<const Self> ConstPointer; 00071 itkNewMacro(Self); 00072 itkTypeMacro(EquivalenceRelabeler, ProcessObject); 00073 00075 void SetInputImage(ImageType *img) 00076 { this->ProcessObject::SetNthInput(0, img); } 00077 const ImageType * GetInputImage(void) 00078 { 00079 return static_cast<ImageType *> 00080 (this->ProcessObject::GetInput(0)); 00081 } 00082 00084 void SetOutputImage(ImageType * img) 00085 { 00086 this->ProcessObject::SetNthOutput(0,img); 00087 } 00088 typename ImageType::Pointer GetOutputImage() 00089 { return static_cast<ImageType *> 00090 (this->ProcessObject::GetOutput(0)); } 00091 00093 void SetEquivalencyTable(EquivalencyTableType *et) 00094 { 00095 this->ProcessObject::SetNthInput(1, et); 00096 } 00097 EquivalencyTableType::Pointer GetEquivalencyTable() 00098 { 00099 return static_cast<EquivalencyTableType *> 00100 (this->ProcessObject::GetInput(1)); 00101 } 00102 00104 void GenerateData(); 00105 00107 virtual DataObjectPointer MakeOutput(unsigned int idx); 00108 00109 protected: 00110 EquivalenceRelabeler() 00111 { 00112 typename ImageType::Pointer img 00113 = static_cast<ImageType*>(this->MakeOutput(0).GetPointer()); 00114 this->SetNumberOfRequiredOutputs(1); 00115 this->ProcessObject::SetNthOutput(0, img.GetPointer()); 00116 } 00117 virtual ~EquivalenceRelabeler() {} 00118 EquivalenceRelabeler(const Self&) {} 00119 void operator=(const Self&) {} 00120 void PrintSelf(std::ostream& os, Indent indent) const; 00121 00122 void GenerateOutputRequestedRegion(DataObject *output); 00123 void GenerateInputRequestedRegion(); 00124 }; 00125 00126 }// end namespace watershed 00127 }// end namespace itk 00128 00129 #ifndef ITK_MANUAL_INSTANTIATION 00130 #include "itkWatershedEquivalenceRelabeler.txx" 00131 #endif 00132 00133 #endif

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