00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00037 #ifndef __vtkImageAutoThresholdColocalization_h
00038 #define __vtkImageAutoThresholdColocalization_h
00039
00040
00041 #include "vtkImageMultipleInputOutputFilter.h"
00042
00043 class VTK_FILTERING_EXPORT vtkImageAutoThresholdColocalization : public vtkImageMultipleInputOutputFilter
00044 {
00045 public:
00046 static vtkImageAutoThresholdColocalization *New();
00047 vtkTypeRevisionMacro(vtkImageAutoThresholdColocalization,vtkImageMultipleInputOutputFilter);
00048 void PrintSelf(ostream& os, vtkIndent indent);
00049
00050
00052
00053 vtkGetMacro(IncludeZeroPixels,bool);
00054 vtkSetMacro(IncludeZeroPixels,bool);
00056
00058
00059 vtkGetMacro(ConstantVoxelValue,int);
00060 vtkSetMacro(ConstantVoxelValue,int);
00062
00064
00066 vtkGetMacro(PearsonWholeImage,double);
00067 vtkSetMacro(PearsonWholeImage,double);
00068 vtkGetMacro(PearsonImageAbove,double);
00069 vtkSetMacro(PearsonImageAbove,double);
00070 vtkGetMacro(PearsonImageBelow,double);
00071 vtkSetMacro(PearsonImageBelow,double);
00073
00075
00077 vtkGetMacro(M1,double);
00078 vtkSetMacro(M1,double);
00079 vtkGetMacro(M2,double);
00080 vtkSetMacro(M2,double);
00081
00082
00084
00085 vtkGetMacro(K1,double);
00086 vtkSetMacro(K1,double);
00087 vtkGetMacro(K2,double);
00088 vtkSetMacro(K2,double);
00090
00091 vtkGetMacro(ThresholdM1,double);
00092 vtkSetMacro(ThresholdM1,double);
00093 vtkGetMacro(ThresholdM2,double);
00094 vtkSetMacro(ThresholdM2,double);
00096
00098
00099 vtkGetMacro(C1,double);
00100 vtkSetMacro(C1,double);
00101 vtkGetMacro(C2,double);
00102 vtkSetMacro(C2,double);
00104
00106
00107 vtkGetMacro(PercentageVolumeCh1,double);
00108 vtkSetMacro(PercentageVolumeCh1,double);
00109 vtkGetMacro(PercentageVolumeCh2,double);
00110 vtkSetMacro(PercentageVolumeCh2,double);
00112
00114
00115 vtkGetMacro(PercentageTotalCh1,double);
00116 vtkSetMacro(PercentageTotalCh1,double);
00117 vtkGetMacro(PercentageTotalCh2,double);
00118 vtkSetMacro(PercentageTotalCh2,double);
00120
00122
00123 vtkGetMacro(PercentageMaterialCh1,double);
00124 vtkSetMacro(PercentageMaterialCh1,double);
00125 vtkGetMacro(PercentageMaterialCh2,double);
00126 vtkSetMacro(PercentageMaterialCh2,double);
00128
00130
00131 vtkGetMacro(Ch1ThresholdMax,double);
00132 vtkSetMacro(Ch1ThresholdMax,double);
00133 vtkGetMacro(Ch2ThresholdMax,double);
00134 vtkSetMacro(Ch2ThresholdMax,double);
00136
00138
00139 vtkGetMacro(SumOverThresholdCh1,double);
00140 vtkSetMacro(SumOverThresholdCh1,double);
00141 vtkGetMacro(SumOverThresholdCh2,double);
00142 vtkSetMacro(SumOverThresholdCh2,double);
00144
00146
00147 vtkGetMacro(SumCh1,double);
00148 vtkSetMacro(SumCh1,double);
00149 vtkGetMacro(SumCh2,double);
00150 vtkSetMacro(SumCh2,double);
00152
00154
00155 vtkGetMacro(Slope,double);
00156 vtkSetMacro(Slope,double);
00158
00160
00161 vtkGetMacro(Intercept,double);
00162 vtkSetMacro(Intercept,double);
00164
00166
00167 vtkGetMacro(ColocAmount,double);
00168 vtkSetMacro(ColocAmount,double);
00170
00172
00173 vtkGetMacro(ColocPercent,double);
00174 vtkSetMacro(ColocPercent,double);
00176
00178
00184 vtkGetMacro(DiffStainIntCh1,double);
00185 vtkSetMacro(DiffStainIntCh1,double);
00186
00187
00188 vtkGetMacro(DiffStainVoxelsCh1,double);
00189 vtkSetMacro(DiffStainVoxelsCh1,double);
00190
00191
00192 vtkGetMacro(DiffStainIntCh2,double);
00193 vtkSetMacro(DiffStainIntCh2,double);
00194
00195
00196 vtkGetMacro(DiffStainVoxelsCh2,double);
00197 vtkSetMacro(DiffStainVoxelsCh2,double);
00199
00201
00202 vtkGetMacro(LowerThresholdCh1,int);
00203 vtkSetMacro(LowerThresholdCh1,int);
00204 vtkGetMacro(LowerThresholdCh2,int);
00205 vtkSetMacro(LowerThresholdCh2,int);
00206 vtkGetMacro(UpperThresholdCh1,int);
00207 vtkSetMacro(UpperThresholdCh1,int);
00208 vtkGetMacro(UpperThresholdCh2,int);
00209 vtkSetMacro(UpperThresholdCh2,int);
00211
00213
00215 vtkSetMacro(OverThresholdCh1,int);
00216 vtkGetMacro(OverThresholdCh1,int)
00217 vtkSetMacro(OverThresholdCh2,int);
00218 vtkGetMacro(OverThresholdCh2,int)
00220
00222
00223 vtkSetMacro(NonZeroCh1,int);
00224 vtkGetMacro(NonZeroCh1,int)
00225 vtkSetMacro(NonZeroCh2,int);
00226 vtkGetMacro(NonZeroCh2,int)
00228
00229 protected:
00230 vtkImageAutoThresholdColocalization();
00231 ~vtkImageAutoThresholdColocalization();
00232
00233 void ComputeInputUpdateExtents( vtkDataObject*output );
00234
00235 void ExecuteInformation(vtkImageData **inputs, vtkImageData **output);
00236 void ComputeInputUpdateExtent(int inExt[6], int outExt[6]);
00237
00238 void ThreadedExecute(vtkImageData **inDatas, vtkImageData **outData,
00239 int extent[6], int id);
00240
00241
00242 void InitOutput(int outExt[6], vtkImageData *outData);
00243 private:
00244 vtkImageAutoThresholdColocalization(const vtkImageAutoThresholdColocalization&);
00245 void operator=(const vtkImageAutoThresholdColocalization&);
00246
00247 int ConstantVoxelValue;
00248 bool IncludeZeroPixels;
00249
00250 double PearsonWholeImage;
00251 double PearsonImageAbove;
00252 double PearsonImageBelow;
00253
00254 double M1;
00255 double M2;
00256 double ThresholdM1;
00257 double ThresholdM2;
00258 double C1;
00259 double C2;
00260 double K1;
00261 double K2;
00262
00263 double PercentageVolumeCh1;
00264 double PercentageVolumeCh2;
00265 double PercentageTotalCh1;
00266 double PercentageTotalCh2;
00267 double Ch1ThresholdMax;
00268 double Ch2ThresholdMax;
00269
00270 double PercentageMaterialCh1;
00271 double PercentageMaterialCh2;
00272
00273 double ColocAmount;
00274 double ColocPercent;
00275 double SumOverThresholdCh1;
00276 double SumOverThresholdCh2;
00277 double SumCh1;
00278 double SumCh2;
00279
00280 double DiffStainIntCh1;
00281 double DiffStainVoxelsCh1;
00282 double DiffStainIntCh2;
00283 double DiffStainVoxelsCh2;
00284
00285 double Slope;
00286 double Intercept;
00287
00288 int LowerThresholdCh1;
00289 int LowerThresholdCh2;
00290 int UpperThresholdCh1;
00291 int UpperThresholdCh2;
00292
00293 int OverThresholdCh1;
00294 int OverThresholdCh2;
00295 int NonZeroCh1;
00296 int NonZeroCh2;
00297 };
00298
00299 #endif