Imaging/vtkImageDifference.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00027 #ifndef __vtkImageDifference_h
00028 #define __vtkImageDifference_h
00029
00030 #include "vtkImageTwoInputFilter.h"
00031
00032 class VTK_IMAGING_EXPORT vtkImageDifference : public vtkImageTwoInputFilter
00033 {
00034 public:
00035 static vtkImageDifference *New();
00036 vtkTypeRevisionMacro(vtkImageDifference,vtkImageTwoInputFilter);
00037 void PrintSelf(ostream& os, vtkIndent indent);
00038
00040
00041 void SetImage(vtkImageData *image) {this->SetInput2(image);}
00042 vtkImageData *GetImage() {return this->GetInput2();}
00044
00046
00047 void SetInput(vtkImageData *input) {this->SetInput1(input);}
00048 void SetInput(int num, vtkImageData *input)
00049 { this->vtkImageMultipleInputFilter::SetInput(num, input); };
00051
00053
00054 double GetError(void);
00055 void GetError(double *e) { *e = this->GetError(); };
00057
00059
00062 double GetThresholdedError(void);
00063 void GetThresholdedError(double *e) { *e = this->GetThresholdedError(); };
00065
00066
00068
00069 vtkSetMacro(Threshold,int);
00070 vtkGetMacro(Threshold,int);
00072
00074
00079 vtkSetMacro(AllowShift,int);
00080 vtkGetMacro(AllowShift,int);
00081 vtkBooleanMacro(AllowShift,int);
00083
00085
00088 vtkSetMacro(Averaging,int);
00089 vtkGetMacro(Averaging,int);
00090 vtkBooleanMacro(Averaging,int);
00092
00093 protected:
00094 vtkImageDifference();
00095 ~vtkImageDifference() {};
00096
00097 double ErrorPerThread[VTK_MAX_THREADS];
00098 double ThresholdedErrorPerThread[VTK_MAX_THREADS];
00099 int AllowShift;
00100 int Threshold;
00101 int Averaging;
00102
00103 void ExecuteInformation(vtkImageData **inputs, vtkImageData *output);
00104 void ComputeInputUpdateExtent(int inExt[6], int outExt[6],
00105 int whichInput);
00106 void ExecuteInformation(){this->vtkImageTwoInputFilter::ExecuteInformation();};
00107 void ThreadedExecute(vtkImageData **inDatas, vtkImageData *outData,
00108 int extent[6], int id);
00109
00110 private:
00111 vtkImageDifference(const vtkImageDifference&);
00112 void operator=(const vtkImageDifference&);
00113 };
00114
00115 #endif
00116
00117