00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00026
#ifndef __vtkImageThreshold_h
00027
#define __vtkImageThreshold_h
00028
00029
00030
#include "vtkImageToImageFilter.h"
00031
00032 class VTK_IMAGING_EXPORT vtkImageThreshold :
public vtkImageToImageFilter
00033 {
00034
public:
00035
static vtkImageThreshold *
New();
00036 vtkTypeRevisionMacro(vtkImageThreshold,
vtkImageToImageFilter);
00037
void PrintSelf(ostream& os,
vtkIndent indent);
00038
00040
void ThresholdByUpper(
double thresh);
00041
00043
void ThresholdByLower(
double thresh);
00044
00046
void ThresholdBetween(
double lower,
double upper);
00047
00049
00050 vtkSetMacro(ReplaceIn,
int);
00051 vtkGetMacro(ReplaceIn,
int);
00052 vtkBooleanMacro(ReplaceIn,
int);
00054
00056
00057
void SetInValue(
double val);
00058 vtkGetMacro(InValue,
double);
00060
00062
00063 vtkSetMacro(ReplaceOut,
int);
00064 vtkGetMacro(ReplaceOut,
int);
00065 vtkBooleanMacro(ReplaceOut,
int);
00067
00069
00070
void SetOutValue(
double val);
00071 vtkGetMacro(OutValue,
double);
00073
00075
00076 vtkGetMacro(UpperThreshold,
double);
00077 vtkGetMacro(LowerThreshold,
double);
00079
00081
00082 vtkSetMacro(OutputScalarType,
int);
00083 vtkGetMacro(OutputScalarType,
int);
00084 void SetOutputScalarTypeToDouble()
00085 {this->SetOutputScalarType(
VTK_DOUBLE);}
00086 void SetOutputScalarTypeToFloat()
00087 {this->SetOutputScalarType(
VTK_FLOAT);}
00088 void SetOutputScalarTypeToLong()
00089 {this->SetOutputScalarType(
VTK_LONG);}
00090 void SetOutputScalarTypeToUnsignedLong()
00091 {this->SetOutputScalarType(
VTK_UNSIGNED_LONG);};
00092 void SetOutputScalarTypeToInt()
00093 {this->SetOutputScalarType(
VTK_INT);}
00094 void SetOutputScalarTypeToUnsignedInt()
00095 {this->SetOutputScalarType(
VTK_UNSIGNED_INT);}
00096 void SetOutputScalarTypeToShort()
00097 {this->SetOutputScalarType(
VTK_SHORT);}
00098 void SetOutputScalarTypeToUnsignedShort()
00099 {this->SetOutputScalarType(
VTK_UNSIGNED_SHORT);}
00100 void SetOutputScalarTypeToChar()
00101 {this->SetOutputScalarType(
VTK_CHAR);}
00102 void SetOutputScalarTypeToUnsignedChar()
00103 {this->SetOutputScalarType(
VTK_UNSIGNED_CHAR);}
00105
00106
protected:
00107 vtkImageThreshold();
00108 ~vtkImageThreshold() {};
00109
00110 double UpperThreshold;
00111 double LowerThreshold;
00112 int ReplaceIn;
00113 double InValue;
00114 int ReplaceOut;
00115 double OutValue;
00116
00117 int OutputScalarType;
00118
00119
void ExecuteInformation(
vtkImageData *inData,
vtkImageData *outData);
00120 void ExecuteInformation(){this->
vtkImageToImageFilter::ExecuteInformation();};
00121
void ThreadedExecute(
vtkImageData *inData,
vtkImageData *outData,
00122
int extent[6],
int id);
00123
private:
00124 vtkImageThreshold(
const vtkImageThreshold&);
00125
void operator=(
const vtkImageThreshold&);
00126 };
00127
00128
#endif
00129
00130
00131