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 "vtkThreadedImageAlgorithm.h" 00036 #include "vtkImageData.h" // makes things a bit easier 00037 00038 class VTK_IMAGING_EXPORT vtkImageNonMaximumSuppression : public vtkThreadedImageAlgorithm 00039 { 00040 public: 00041 static vtkImageNonMaximumSuppression *New(); 00042 vtkTypeMacro(vtkImageNonMaximumSuppression,vtkThreadedImageAlgorithm); 00043 void PrintSelf(ostream& os, vtkIndent indent); 00044 00046 00047 void SetMagnitudeInput(vtkImageData *input) {this->SetInput(0,input);}; 00048 void SetVectorInput(vtkImageData *input) {this->SetInput(1,input);}; 00050 00052 00054 vtkSetMacro(HandleBoundaries, int); 00055 vtkGetMacro(HandleBoundaries, int); 00056 vtkBooleanMacro(HandleBoundaries, int); 00058 00060 00062 vtkSetClampMacro(Dimensionality,int,2,3); 00063 vtkGetMacro(Dimensionality,int); 00065 00066 protected: 00067 vtkImageNonMaximumSuppression(); 00068 ~vtkImageNonMaximumSuppression() {}; 00069 00070 int HandleBoundaries; 00071 int Dimensionality; 00072 00073 virtual int RequestInformation (vtkInformation *, 00074 vtkInformationVector **, 00075 vtkInformationVector *); 00076 00077 virtual int RequestUpdateExtent(vtkInformation*, 00078 vtkInformationVector**, 00079 vtkInformationVector*); 00080 00081 virtual void ThreadedRequestData(vtkInformation *request, 00082 vtkInformationVector **inputVector, 00083 vtkInformationVector *outputVector, 00084 vtkImageData ***inData, 00085 vtkImageData **outData, 00086 int extent[6], int threadId); 00087 00088 private: 00089 vtkImageNonMaximumSuppression(const vtkImageNonMaximumSuppression&); // Not implemented. 00090 void operator=(const vtkImageNonMaximumSuppression&); // Not implemented. 00091 }; 00092 00093 #endif 00094 00095 00096