VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkImageNonMaximumSuppression.h 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 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 "vtkImagingMorphologicalModule.h" // For export macro 00036 #include "vtkThreadedImageAlgorithm.h" 00037 #include "vtkImageData.h" // makes things a bit easier 00038 00039 class VTKIMAGINGMORPHOLOGICAL_EXPORT vtkImageNonMaximumSuppression : public vtkThreadedImageAlgorithm 00040 { 00041 public: 00042 static vtkImageNonMaximumSuppression *New(); 00043 vtkTypeMacro(vtkImageNonMaximumSuppression,vtkThreadedImageAlgorithm); 00044 void PrintSelf(ostream& os, vtkIndent indent); 00045 00047 00048 void SetMagnitudeInputData(vtkImageData *input) {this->SetInputData(0,input);}; 00049 void SetVectorInputData(vtkImageData *input) {this->SetInputData(1,input);}; 00051 00053 00055 vtkSetMacro(HandleBoundaries, int); 00056 vtkGetMacro(HandleBoundaries, int); 00057 vtkBooleanMacro(HandleBoundaries, int); 00059 00061 00063 vtkSetClampMacro(Dimensionality,int,2,3); 00064 vtkGetMacro(Dimensionality,int); 00066 00067 protected: 00068 vtkImageNonMaximumSuppression(); 00069 ~vtkImageNonMaximumSuppression() {} 00070 00071 int HandleBoundaries; 00072 int Dimensionality; 00073 00074 virtual int RequestInformation (vtkInformation *, 00075 vtkInformationVector **, 00076 vtkInformationVector *); 00077 00078 virtual int RequestUpdateExtent(vtkInformation*, 00079 vtkInformationVector**, 00080 vtkInformationVector*); 00081 00082 virtual void ThreadedRequestData(vtkInformation *request, 00083 vtkInformationVector **inputVector, 00084 vtkInformationVector *outputVector, 00085 vtkImageData ***inData, 00086 vtkImageData **outData, 00087 int extent[6], int threadId); 00088 00089 private: 00090 vtkImageNonMaximumSuppression(const vtkImageNonMaximumSuppression&); // Not implemented. 00091 void operator=(const vtkImageNonMaximumSuppression&); // Not implemented. 00092 }; 00093 00094 #endif 00095 00096 00097