USGS

Isis 3.0 Developer's Reference (API)

Home

QuickFilter.h
Go to the documentation of this file.
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