|
From: Gustavo P. B. <gb...@us...> - 2005-05-28 21:29:39
|
Update of /cvsroot/kimageprocess/kimageprocess/src/methods/hsvcm/features/correlation In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16695/src/methods/hsvcm/features/correlation Modified Files: correlation.cpp Log Message: - Fixed contrast calculation - Changed correlation calculation (but now it is getting a `nan' result :-S Index: correlation.cpp =================================================================== RCS file: /cvsroot/kimageprocess/kimageprocess/src/methods/hsvcm/features/correlation/correlation.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- correlation.cpp 24 May 2005 03:36:54 -0000 1.4 +++ correlation.cpp 28 May 2005 21:29:27 -0000 1.5 @@ -84,31 +84,32 @@ float mult; // ----- V component ------------- + //mean for (i=0; i < cmSizeV; ++i) - { - mult = pv[i]*i; - meanv += mult; - sum_sqrv += mult * i; - } - stddevv = sqrt((sum_sqrv - meanv) * (sum_sqrv - meanv)); + meanv += pv[i]*i; + //variance + for (i=0; i < cmSizeV; ++i) + sum_sqrv += (i - meanv); + //standard deviation + stddevv = sqrt(sum_sqrv); // ----- H component ------------ for (j=0; j < cmSizeH; ++j) - { - mult = ph[j]*j; - meanh += mult; - sum_sqrh += mult * j; - } - stddevh = sqrt((sum_sqrh - meanh) * (sum_sqrh - meanh)); + meanh += pv[j]*j; + //variance + for (j=0; j < cmSizeH; ++j) + sum_sqrh += (j - meanh); + //standard deviation + stddevh = sqrt(sum_sqrh); // ----- S component ------------ for (k=0; k < cmSizeS; ++k) - { - mult = ps[k]*k; - means+= mult; - sum_sqrs += mult * k; - } - stddevs = sqrt((sum_sqrs - means) * (sum_sqrs - means)); + means += pv[k]*k; + //variance + for (k=0; k < cmSizeS; ++k) + sum_sqrs += (k - means); + //standard deviation + stddevs = sqrt(sum_sqrs); //and now (finally) the correlation itself: tmp = 0; @@ -116,7 +117,7 @@ for (j = 0; j < cmSizeH; ++j) for (k = 0; k < cmSizeS; ++k) { - tmp += (i * j * k * cm[i][j][k] - meanv * means * meanv) / (stddevv * stddevh * stddevs); + tmp += (i * j * k * cm[i][j][k] - meanv * meanh * means) / (stddevv * stddevh * stddevs); } //CHECKME: validate all this code return tmp; |