Paradigm#
Note
GooseEYE is a research code. The best reference is the code itself: this reader just gives an overview and points in the right directions.
Header-only#
Just
#include <GooseEYE/GooseEYE.h>
Everything is contained in the namespace GooseEYE
.
Ensemble or individual image#
There are two modes of using the code:
Individual image: use individual functions (e.g.
GooseFEM::S2(...)
,GooseFEM::W2(...)
, etc.)Ensemble of images: use the
GooseFEM::Ensemble
class. See example
The individual functions are simply a wrapper around the GooseFEM::Ensemble
class.
The general structure for an ensemble of images is as follows:
Initialize the ensemble, defining some settings of which the shape of the region-of-interest is mandatory. For example:
GooseEYE::Ensemble ensemble({51, 51});
Compute the statistics by evaluating a sequence of images in the ensemble. For example:
ensemble.S2(Ia, Ia); ensemble.S2(Ib, Ib); ensemble.S2(Ic, Ic); ...
Evaluate the result:
auto result = ensemble.result();
Note
The variance around the average can be obtained using
ensemble.variance();
Note
To obtain the raw result and normalisation use:
// first moment : x_1 + x_2 + ... ensemble.data_first(); // second moment: x_1^2 + x_2^2 + ... ensemble.data_second(); // normalisation (number of measurements) ensemble.norm();
Using the individual images wrapper, all these steps are combined in a single function call with almost the same arguments. The only limitation is the the raw data and normalization cannot be accessed.