00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
#ifndef __itkGrayscaleGeodesicDilateImageFilter_h
00018
#define __itkGrayscaleGeodesicDilateImageFilter_h
00019
00020
#include "itkImageToImageFilter.h"
00021
00022
namespace itk {
00023
00051
template<
class TInputImage,
class TOutputImage>
00052 class ITK_EXPORT GrayscaleGeodesicDilateImageFilter :
00053
public ImageToImageFilter<TInputImage, TOutputImage>
00054 {
00055
public:
00057 typedef GrayscaleGeodesicDilateImageFilter
Self;
00058
typedef ImageToImageFilter<TInputImage, TOutputImage>
00059 Superclass;
00060 typedef SmartPointer<Self> Pointer;
00061 typedef SmartPointer<const Self> ConstPointer;
00062
00064 typedef TInputImage
MarkerImageType;
00065 typedef TInputImage
MaskImageType;
00066 typedef TOutputImage
OutputImageType;
00067 typedef typename MarkerImageType::Pointer
MarkerImagePointer;
00068 typedef typename MarkerImageType::ConstPointer
MarkerImageConstPointer;
00069 typedef typename MarkerImageType::RegionType
MarkerImageRegionType;
00070 typedef typename MarkerImageType::PixelType
MarkerImagePixelType;
00071 typedef typename MaskImageType::Pointer
MaskImagePointer;
00072 typedef typename MaskImageType::ConstPointer
MaskImageConstPointer;
00073 typedef typename MaskImageType::RegionType
MaskImageRegionType;
00074 typedef typename MaskImageType::PixelType
MaskImagePixelType;
00075 typedef typename OutputImageType::Pointer
OutputImagePointer;
00076 typedef typename OutputImageType::ConstPointer
OutputImageConstPointer;
00077 typedef typename OutputImageType::RegionType
OutputImageRegionType;
00078 typedef typename OutputImageType::PixelType
OutputImagePixelType;
00079
00081
itkStaticConstMacro(MarkerImageDimension,
unsigned int,
00082 TInputImage::ImageDimension);
00083
itkStaticConstMacro(MaskImageDimension,
unsigned int,
00084 TInputImage::ImageDimension);
00085
itkStaticConstMacro(OutputImageDimension,
unsigned int,
00086 TOutputImage::ImageDimension);
00087
00089
itkNewMacro(
Self);
00090
00092
itkTypeMacro(GrayscaleGeodesicDilateImageFilter,
00093
ImageToImageFilter);
00094
00098
void SetMarkerImage(
const MarkerImageType *);
00099
const MarkerImageType* GetMarkerImage();
00100
00104
void SetMaskImage(
const MaskImageType *);
00105
const MaskImageType* GetMaskImage();
00106
00110
itkSetMacro(RunOneIteration,
bool);
00111
itkGetMacro(RunOneIteration,
bool);
00112
itkBooleanMacro(RunOneIteration);
00113
00116
itkGetMacro(NumberOfIterationsUsed,
unsigned long);
00117
00118
protected:
00119 GrayscaleGeodesicDilateImageFilter();
00120 ~GrayscaleGeodesicDilateImageFilter() {};
00121
void PrintSelf(std::ostream& os,
Indent indent)
const;
00122
00129
void GenerateInputRequestedRegion();
00130
00135
void EnlargeOutputRequestedRegion(
DataObject *
itkNotUsed(output));
00136
00143
void GenerateData();
00144
00149
void ThreadedGenerateData (
const OutputImageRegionType&
00150 outputRegionForThread,
00151
int threadId) ;
00152
00153
private:
00154 GrayscaleGeodesicDilateImageFilter(
const Self&);
00155
void operator=(
const Self&);
00156
00157
bool m_RunOneIteration;
00158
unsigned long m_NumberOfIterationsUsed;
00159
00160 } ;
00161
00162 }
00163
00164
#ifndef ITK_MANUAL_INSTANTIATION
00165
#include "itkGrayscaleGeodesicDilateImageFilter.txx"
00166
#endif
00167
00168
#endif
00169
00170