00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
#ifndef __itkDoubleThresholdImageFilter_h
00018
#define __itkDoubleThresholdImageFilter_h
00019
00020
#include "itkImageToImageFilter.h"
00021
#include "itkConceptChecking.h"
00022
00023
namespace itk
00024 {
00025
00053
template <
class TInputImage,
class TOutputImage>
00054 class ITK_EXPORT DoubleThresholdImageFilter :
00055
public ImageToImageFilter<TInputImage, TOutputImage>
00056 {
00057
public:
00059 typedef DoubleThresholdImageFilter
Self;
00060 typedef ImageToImageFilter<TInputImage,TOutputImage> Superclass;
00061 typedef SmartPointer<Self> Pointer;
00062 typedef SmartPointer<const Self> ConstPointer;
00063
00065
itkNewMacro(
Self);
00066
00068
itkTypeMacro(DoubleThresholdImageFilter,
ImageToImageFilter);
00069
00071 typedef typename Superclass::InputImagePointer
InputImagePointer;
00072 typedef typename Superclass::InputImageType
InputImageType;
00073
00075 typedef typename TInputImage::PixelType
InputPixelType;
00076 typedef typename TOutputImage::PixelType
OutputPixelType;
00077
00079
itkConceptMacro(PixelTypeComparable, (
Concept::Comparable<InputPixelType>));
00080
00083
itkSetMacro(OutsideValue,
OutputPixelType);
00084
00086
itkGetMacro(OutsideValue,
OutputPixelType);
00087
00090
itkSetMacro(InsideValue,
OutputPixelType);
00091
00093
itkGetMacro(InsideValue,
OutputPixelType);
00094
00100
itkSetMacro( Threshold1,
InputPixelType );
00101
itkSetMacro( Threshold2,
InputPixelType );
00102
itkSetMacro( Threshold3,
InputPixelType );
00103
itkSetMacro( Threshold4,
InputPixelType );
00104
00106
itkGetMacro( Threshold1,
InputPixelType );
00107
itkGetMacro( Threshold2,
InputPixelType );
00108
itkGetMacro( Threshold3,
InputPixelType );
00109
itkGetMacro( Threshold4,
InputPixelType );
00110
00113
itkGetMacro( NumberOfIterationsUsed,
unsigned long);
00114
00115
protected:
00116 DoubleThresholdImageFilter();
00117
virtual ~DoubleThresholdImageFilter() {}
00118
void PrintSelf(std::ostream& os,
Indent indent)
const;
00119
00122
void GenerateInputRequestedRegion();
00123
00126
void EnlargeOutputRequestedRegion(
DataObject *
itkNotUsed(output));
00127
00131
void GenerateData();
00132
00133
private:
00134 DoubleThresholdImageFilter(
const Self&);
00135
void operator=(
const Self&);
00136
00137
InputPixelType m_Threshold1;
00138
InputPixelType m_Threshold2;
00139
InputPixelType m_Threshold3;
00140
InputPixelType m_Threshold4;
00141
00142
OutputPixelType m_InsideValue;
00143
OutputPixelType m_OutsideValue;
00144
00145
unsigned long m_NumberOfIterationsUsed;
00146
00147 };
00148
00149 }
00150
00151
#ifndef ITK_MANUAL_INSTANTIATION
00152
#include "itkDoubleThresholdImageFilter.txx"
00153
#endif
00154
00155
#endif