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_IMAGING_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
00079 vtkSetMacro(ReplaceIn, int);
00080 vtkGetMacro(ReplaceIn, int);
00081 vtkBooleanMacro(ReplaceIn, int);
00083
00085
00086 void SetInValue(float val);
00087 vtkGetMacro(InValue, float);
00089
00091
00092 vtkSetMacro(ReplaceOut, int);
00093 vtkGetMacro(ReplaceOut, int);
00094 vtkBooleanMacro(ReplaceOut, int);
00096
00098
00099 void SetOutValue(float val);
00100 vtkGetMacro(OutValue, float);
00102
00104
00105 vtkGetMacro(UpperThreshold, float);
00106 vtkGetMacro(LowerThreshold, float);
00108
00110
00111 vtkSetMacro(OutputScalarType, int);
00112 vtkGetMacro(OutputScalarType, int);
00113 void SetOutputScalarTypeToDouble()
00114 {this->SetOutputScalarType(VTK_DOUBLE);}
00115 void SetOutputScalarTypeToFloat()
00116 {this->SetOutputScalarType(VTK_FLOAT);}
00117 void SetOutputScalarTypeToLong()
00118 {this->SetOutputScalarType(VTK_LONG);}
00119 void SetOutputScalarTypeToUnsignedLong()
00120 {this->SetOutputScalarType(VTK_UNSIGNED_LONG);};
00121 void SetOutputScalarTypeToInt()
00122 {this->SetOutputScalarType(VTK_INT);}
00123 void SetOutputScalarTypeToUnsignedInt()
00124 {this->SetOutputScalarType(VTK_UNSIGNED_INT);}
00125 void SetOutputScalarTypeToShort()
00126 {this->SetOutputScalarType(VTK_SHORT);}
00127 void SetOutputScalarTypeToUnsignedShort()
00128 {this->SetOutputScalarType(VTK_UNSIGNED_SHORT);}
00129 void SetOutputScalarTypeToChar()
00130 {this->SetOutputScalarType(VTK_CHAR);}
00131 void SetOutputScalarTypeToUnsignedChar()
00132 {this->SetOutputScalarType(VTK_UNSIGNED_CHAR);}
00134
00135 protected:
00136 vtkImageThreshold();
00137 ~vtkImageThreshold() {};
00138
00139 float UpperThreshold;
00140 float LowerThreshold;
00141 int ReplaceIn;
00142 float InValue;
00143 int ReplaceOut;
00144 float OutValue;
00145
00146 int OutputScalarType;
00147
00148 void ExecuteInformation(vtkImageData *inData, vtkImageData *outData);
00149 void ExecuteInformation(){this->vtkImageToImageFilter::ExecuteInformation();};
00150 void ThreadedExecute(vtkImageData *inData, vtkImageData *outData,
00151 int extent[6], int id);
00152 private:
00153 vtkImageThreshold(const vtkImageThreshold&);
00154 void operator=(const vtkImageThreshold&);
00155 };
00156
00157 #endif
00158
00159
00160