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