1 #include <grass/cluster.h>
4 int c, p, band1, band2;
16 for (n = 0; n < C->nclasses; n++) {
20 for (p = 0; p < C->npoints; p++) {
31 for (band1 = 0; band1 < C->nbands; band1++) {
32 m1 = C->sum[band1][c] / dn;
33 p1 = C->points[band1][p];
34 for (band2 = 0; band2 <= band1; band2++) {
35 m2 = C->sum[band2][c] / dn;
36 p2 = C->points[band2][p];
37 C->S.sig[c].var[band1][band2] += (p1 - m1) * (p2 - m2);
42 for (c = 0; c < C->nclasses; c++) {
43 dn = n = C->S.sig[c].npoints = C->count[c];
46 for (band1 = 0; band1 < C->nbands; band1++)
47 C->S.sig[c].mean[band1] = C->sum[band1][c] / dn;
48 dn = n = C->count[c] - 1;
51 for (band1 = 0; band1 < C->nbands; band1++)
52 for (band2 = 0; band2 <= band1; band2++)
53 C->S.sig[c].var[band1][band2] /= dn;
54 C->S.sig[c].status = 1;
int I_new_signature(struct Signature *S)
int I_cluster_signatures(struct Cluster *C)