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