00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00055 #ifndef __vtkImageThreshold_h
00056 #define __vtkImageThreshold_h
00057
00058
00059 #include "vtkImageToImageFilter.h"
00060
00061 class VTK_EXPORT vtkImageThreshold : public vtkImageToImageFilter
00062 {
00063 public:
00064 static vtkImageThreshold *New();
00065 vtkTypeMacro(vtkImageThreshold,vtkImageToImageFilter);
00066 void PrintSelf(ostream& os, vtkIndent indent);
00067
00069 void ThresholdByUpper(float thresh);
00070
00072 void ThresholdByLower(float thresh);
00073
00075 void ThresholdBetween(float lower, float upper);
00076
00078 vtkSetMacro(ReplaceIn, int);
00079 vtkGetMacro(ReplaceIn, int);
00080 vtkBooleanMacro(ReplaceIn, int);
00081
00083 void SetInValue(float val);
00084 vtkGetMacro(InValue, float);
00085
00087 vtkSetMacro(ReplaceOut, int);
00088 vtkGetMacro(ReplaceOut, int);
00089 vtkBooleanMacro(ReplaceOut, int);
00090
00092 void SetOutValue(float val);
00093 vtkGetMacro(OutValue, float);
00094
00096 vtkGetMacro(UpperThreshold, float);
00097 vtkGetMacro(LowerThreshold, float);
00098
00100 vtkSetMacro(OutputScalarType, int);
00101 vtkGetMacro(OutputScalarType, int);
00102 void SetOutputScalarTypeToDouble()
00103 {this->SetOutputScalarType(VTK_DOUBLE);}
00104 void SetOutputScalarTypeToFloat()
00105 {this->SetOutputScalarType(VTK_FLOAT);}
00106 void SetOutputScalarTypeToLong()
00107 {this->SetOutputScalarType(VTK_LONG);}
00108 void SetOutputScalarTypeToUnsignedLong()
00109 {this->SetOutputScalarType(VTK_UNSIGNED_LONG);};
00110 void SetOutputScalarTypeToInt()
00111 {this->SetOutputScalarType(VTK_INT);}
00112 void SetOutputScalarTypeToUnsignedInt()
00113 {this->SetOutputScalarType(VTK_UNSIGNED_INT);}
00114 void SetOutputScalarTypeToShort()
00115 {this->SetOutputScalarType(VTK_SHORT);}
00116 void SetOutputScalarTypeToUnsignedShort()
00117 {this->SetOutputScalarType(VTK_UNSIGNED_SHORT);}
00118 void SetOutputScalarTypeToChar()
00119 {this->SetOutputScalarType(VTK_CHAR);}
00120 void SetOutputScalarTypeToUnsignedChar()
00121 {this->SetOutputScalarType(VTK_UNSIGNED_CHAR);}
00122
00123 protected:
00124 vtkImageThreshold();
00125 ~vtkImageThreshold() {};
00126 vtkImageThreshold(const vtkImageThreshold&) {};
00127 void operator=(const vtkImageThreshold&) {};
00128
00129 float UpperThreshold;
00130 float LowerThreshold;
00131 int ReplaceIn;
00132 float InValue;
00133 int ReplaceOut;
00134 float OutValue;
00135
00136 int OutputScalarType;
00137
00138 void ExecuteInformation(vtkImageData *inData, vtkImageData *outData);
00139 void ExecuteInformation(){this->vtkImageToImageFilter::ExecuteInformation();};
00140 void ThreadedExecute(vtkImageData *inData, vtkImageData *outData,
00141 int extent[6], int id);
00142 };
00143
00144 #endif
00145
00146
00147