|
From: Gustavo P. B. <gb...@us...> - 2005-04-06 04:13:03
|
Update of /cvsroot/kimageprocess/kimageprocess/src/methods/hsvcm/features/entropy In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25586/src/methods/hsvcm/features/entropy Modified Files: entropy.cpp entropy.h Log Message: - Implemented the usage of the features in KTHSVCM - implemented entropy function - implemented angsecmom function Index: entropy.h =================================================================== RCS file: /cvsroot/kimageprocess/kimageprocess/src/methods/hsvcm/features/entropy/entropy.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- entropy.h 5 Apr 2005 22:49:10 -0000 1.1 +++ entropy.h 6 Apr 2005 04:12:54 -0000 1.2 @@ -39,7 +39,7 @@ ~KTHSVCMEntropy(); - float calculate(KTImage *img, int direction); + float _calculate(KTImage *img, int direction); }; #endif Index: entropy.cpp =================================================================== RCS file: /cvsroot/kimageprocess/kimageprocess/src/methods/hsvcm/features/entropy/entropy.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- entropy.cpp 6 Apr 2005 01:50:46 -0000 1.2 +++ entropy.cpp 6 Apr 2005 04:12:54 -0000 1.3 @@ -29,6 +29,9 @@ #include <ktfeaturemanager.h> #include <ktmethod.h> +#include <math.h> +#define EPSILON 0.000000001 + K_EXPORT_COMPONENT_FACTORY( kimageprocess_hsvcm_entropy, KGenericFactory<KTHSVCMEntropy>( "kimageprocess_hsvcm_entropy" ) ) @@ -46,17 +49,22 @@ } -float KTHSVCMEntropy::calculate(KTImage *img, int direction) +float KTHSVCMEntropy::_calculate(KTImage *img, int direction) { - int cmSize[3]; - float ***cm = (float***) method()->data(direction); + int cmSize[3]; + float ***cm = (float***) method()->data(direction); KTMethod *m = method(); cmSize[0] = m->dataSize(0); cmSize[1] = m->dataSize(1); cmSize[2] = m->dataSize(2); - return 0.0; + double sum = 0.; + for (int i=0; i < cmSize[0]; i++) + for (int j=0; j< cmSize[1]; j++) + for (int k=0; k < cmSize[2]; k++) + sum += cm[i][j][k] * log10(cm[i][j][k] + EPSILON); + return sum; } #include "entropy.moc" |