00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
#ifndef __itkConfidenceConnectedImageFilter_h
00018
#define __itkConfidenceConnectedImageFilter_h
00019
00020
#include "itkImage.h"
00021
#include "itkImageToImageFilter.h"
00022
00023
namespace itk{
00024
00056
template <
class TInputImage,
class TOutputImage>
00057 class ITK_EXPORT ConfidenceConnectedImageFilter:
00058
public ImageToImageFilter<TInputImage,TOutputImage>
00059 {
00060
public:
00062
typedef ConfidenceConnectedImageFilter
Self;
00063 typedef ImageToImageFilter<TInputImage,TOutputImage> Superclass;
00064 typedef SmartPointer<Self> Pointer;
00065 typedef SmartPointer<const Self> ConstPointer;
00066
00068
itkNewMacro(
Self);
00069
00071
itkTypeMacro(ConfidenceConnectedImageFilter,
00072
ImageToImageFilter);
00073
00074
typedef TInputImage
InputImageType;
00075 typedef typename InputImageType::Pointer
InputImagePointer;
00076 typedef typename InputImageType::RegionType
InputImageRegionType;
00077 typedef typename InputImageType::PixelType
InputImagePixelType;
00078 typedef typename InputImageType::IndexType
IndexType;
00079 typedef typename InputImageType::SizeType
SizeType;
00080
00081
typedef TOutputImage
OutputImageType;
00082 typedef typename OutputImageType::Pointer
OutputImagePointer;
00083 typedef typename OutputImageType::RegionType
OutputImageRegionType;
00084 typedef typename OutputImageType::PixelType
OutputImagePixelType;
00085
00086
typedef std::vector< IndexType >
SeedsContainerType;
00087
00088
void PrintSelf ( std::ostream& os,
Indent indent )
const;
00089
00091
void SetSeed(
const IndexType & seed)
00092 {
00093 m_Seeds.clear();
00094 this->AddSeed( seed );
00095 };
00096
00097
00099
void AddSeed(
const IndexType & seed)
00100 {
00101 m_Seeds.push_back( seed );
00102 this->Modified();
00103 };
00104
00107
itkSetMacro(Multiplier,
double);
00108
itkGetMacro(Multiplier,
double);
00109
00111
itkSetMacro(NumberOfIterations,
unsigned int);
00112
itkGetMacro(NumberOfIterations,
unsigned int);
00113
00115
itkSetMacro(ReplaceValue, OutputImagePixelType);
00116
itkGetMacro(ReplaceValue, OutputImagePixelType);
00117
00120
itkSetMacro( InitialNeighborhoodRadius,
unsigned int );
00121
itkGetConstReferenceMacro( InitialNeighborhoodRadius,
unsigned int );
00122
00123
protected:
00124 ConfidenceConnectedImageFilter();
00125 ~ConfidenceConnectedImageFilter(){};
00126
00127
00128
void GenerateInputRequestedRegion();
00129
00130
00131
void EnlargeOutputRequestedRegion(DataObject *output);
00132
00133
void GenerateData();
00134
00135
private:
00136 ConfidenceConnectedImageFilter(
const Self&);
00137
void operator=(
const Self&);
00138
00139
SeedsContainerType m_Seeds;
00140
double m_Multiplier;
00141
unsigned int m_NumberOfIterations;
00142
OutputImagePixelType m_ReplaceValue;
00143
unsigned int m_InitialNeighborhoodRadius;
00144 };
00145
00146
00147 }
00148
00149
#ifndef ITK_MANUAL_INSTANTIATION
00150
#include "itkConfidenceConnectedImageFilter.txx"
00151
#endif
00152
00153
#endif