Isis 3.0 Developer's Reference (API) |
Home |
00001 #ifndef QuickFilter_h 00002 #define QuickFilter_h 00003 00025 #include "SpecialPixel.h" 00026 00027 namespace Isis { 00066 class QuickFilter { 00067 private: 00068 double *p_sums; 00078 double *p_sumsqrs; 00082 int *p_counts; 00090 int p_ns; 00096 double p_minimum; 00103 double p_maximum; 00110 int p_minimumPixels; 00116 int p_width; 00121 int p_halfWidth; 00127 int p_height; 00132 int p_halfHeight; 00139 double p_lastSum; 00151 double p_lastSumsqr; 00152 int p_lastCount; 00153 int p_lastIndex; 00164 int p_linesAdded; 00169 void Compute(const int index); 00170 00171 public: 00172 QuickFilter(const int ns, const int width, const int height); 00173 ~QuickFilter(); 00174 00175 double Average(const int index); 00176 double Variance(const int index); 00177 int Count(const int index); 00178 00179 int Width() const; 00180 int HalfWidth() const; 00181 int Height() const; 00182 int HalfHeight() const; 00183 int Samples() const; 00184 00185 double Low() const; 00186 double High() const; 00187 int MinimumPixels() const; 00188 00189 void AddLine(const double *buf); 00190 void RemoveLine(const double *buf); 00191 void Reset(); 00192 00193 void SetMinMax(const double minimum, const double maximum); 00194 void SetMinimumPixels(const int minimumValid); 00195 00196 }; 00197 }; 00198 00199 #endif