Imaging/vtkImageNonMaximumSuppression.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00033 #ifndef __vtkImageNonMaximumSuppression_h
00034 #define __vtkImageNonMaximumSuppression_h
00035
00036 #define VTK_IMAGE_NON_MAXIMUM_SUPPRESSION_MAGNITUDE_INPUT 0
00037 #define VTK_IMAGE_NON_MAXIMUM_SUPPRESSION_VECTOR_INPUT 1
00038
00039 #include "vtkImageTwoInputFilter.h"
00040
00041 class VTK_IMAGING_EXPORT vtkImageNonMaximumSuppression : public vtkImageTwoInputFilter
00042 {
00043 public:
00044 static vtkImageNonMaximumSuppression *New();
00045 vtkTypeRevisionMacro(vtkImageNonMaximumSuppression,vtkImageTwoInputFilter);
00046 void PrintSelf(ostream& os, vtkIndent indent);
00047
00049
00050 void SetMagnitudeInput(vtkImageData *input) {this->SetInput1(input);};
00051 void SetVectorInput(vtkImageData *input) {this->SetInput2(input);};
00053
00055
00057 vtkSetMacro(HandleBoundaries, int);
00058 vtkGetMacro(HandleBoundaries, int);
00059 vtkBooleanMacro(HandleBoundaries, int);
00061
00063
00065 vtkSetClampMacro(Dimensionality,int,2,3);
00066 vtkGetMacro(Dimensionality,int);
00068
00069 protected:
00070 vtkImageNonMaximumSuppression();
00071 ~vtkImageNonMaximumSuppression() {};
00072
00073 int HandleBoundaries;
00074 int Dimensionality;
00075
00076 void ExecuteInformation(vtkImageData **inDatas, vtkImageData *outData);
00077 virtual void ComputeInputUpdateExtent(int inExt[6], int outExt[6],
00078 int whichInput);
00079 void ExecuteInformation(){this->vtkImageTwoInputFilter::ExecuteInformation();};
00080 void ThreadedExecute(vtkImageData **inDatas, vtkImageData *outData,
00081 int extent[6], int id);
00082
00083 private:
00084 vtkImageNonMaximumSuppression(const vtkImageNonMaximumSuppression&);
00085 void operator=(const vtkImageNonMaximumSuppression&);
00086 };
00087
00088 #endif
00089
00090
00091