Isis Developer Reference
QuickFilter.h
Go to the documentation of this file.
1#ifndef QuickFilter_h
2#define QuickFilter_h
8/* SPDX-License-Identifier: CC0-1.0 */
9#include "SpecialPixel.h"
10
11namespace Isis {
51 private:
52 double *p_sums;
62 double *p_sumsqrs;
66 int *p_counts;
74 int p_ns;
80 double p_minimum;
87 double p_maximum;
94 int p_minimumPixels;
100 int p_width;
105 int p_halfWidth;
111 int p_height;
116 int p_halfHeight;
123 double p_lastSum;
135 double p_lastSumsqr;
136 int p_lastCount;
137 int p_lastIndex;
148 int p_linesAdded;
153 void Compute(const int index);
154
155 public:
156 QuickFilter(const int ns, const int width, const int height);
157 ~QuickFilter();
158
159 double Average(const int index);
160 double Variance(const int index);
161 int Count(const int index);
162
163 int Width() const;
164 int HalfWidth() const;
165 int Height() const;
166 int HalfHeight() const;
167 int Samples() const;
168
169 double Low() const;
170 double High() const;
171 int MinimumPixels() const;
172
173 void AddLine(const double *buf);
174 void RemoveLine(const double *buf);
175 void Reset();
176
177 void SetMinMax(const double minimum, const double maximum);
178 void SetMinimumPixels(const int minimumValid);
179
180 };
181};
182
183#endif
Container for boxcar statistics.
Definition QuickFilter.h:50
double Variance(const int index)
Computes and returns the boxcar variance at pixel index (zero based).
Definition QuickFilter.cpp:236
double High() const
Returns the highest pixel value included in filtering computations.
Definition QuickFilter.cpp:329
void AddLine(const double *buf)
Add an array of doubles to the accumulators and counters.
Definition QuickFilter.cpp:162
~QuickFilter()
Destroys the QuickFilter object.
Definition QuickFilter.cpp:97
int Count(const int index)
Computes and returns the number of valid pixels in the boxcar at pixel index (zero based).
Definition QuickFilter.cpp:260
void SetMinMax(const double minimum, const double maximum)
This method is used to set the minimum/maximum valid values.
Definition QuickFilter.cpp:118
void SetMinimumPixels(const int minimumValid)
This method is used to set the minimum number of valid pixels in the boxcar.
Definition QuickFilter.cpp:139
QuickFilter(const int ns, const int width, const int height)
Constructs a QuickFilter object with accumulators and counters set to zero.
Definition QuickFilter.cpp:27
double Low() const
Returns the lowest pixel value included in filtering computations.
Definition QuickFilter.cpp:320
int MinimumPixels() const
Returns the minimum number of pixels which need to be valid inside the boxcar.
Definition QuickFilter.cpp:340
double Average(const int index)
Computes and returns the boxcar average at pixel index (zero based).
Definition QuickFilter.cpp:213
int Width() const
Returns the width of the boxcar.
Definition QuickFilter.cpp:273
int HalfHeight() const
Returns the half the height of the boxcar rounded down because the boxcar size is odd.
Definition QuickFilter.cpp:302
int HalfWidth() const
Returns the half the width of the boxcar rounded down because the boxcar size is odd.
Definition QuickFilter.cpp:283
void RemoveLine(const double *buf)
Remove an array of doubles from the accumulators and counters.
Definition QuickFilter.cpp:188
int Samples() const
Returns the number of samples in a line.
Definition QuickFilter.cpp:311
void Reset()
Reset all accumulators and counters to zero.
Definition QuickFilter.cpp:79
int Height() const
Returns the height of the boxcar.
Definition QuickFilter.cpp:292
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16