From 084835ec30e54220e356f7155a3cf3d8d602a93e Mon Sep 17 00:00:00 2001 From: Benoit Seguin Date: Thu, 18 Sep 2014 14:03:13 +0200 Subject: [PATCH] Fixing a line where integer data was treated as floating point data. --- modules/ml/src/gbt.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/ml/src/gbt.cpp b/modules/ml/src/gbt.cpp index b52ffbe5a3..131eb43fee 100644 --- a/modules/ml/src/gbt.cpp +++ b/modules/ml/src/gbt.cpp @@ -10,6 +10,8 @@ using namespace std; #define CV_CMP_FLOAT(a,b) ((a) < (b)) static CV_IMPLEMENT_QSORT_EX( icvSortFloat, float, CV_CMP_FLOAT, float) +#define CV_CMP_INT(a,b) ((a) < (b)) +static CV_IMPLEMENT_QSORT_EX( icvSortInt, int, CV_CMP_INT, int) //=========================================================================== static string ToString(int i) @@ -282,6 +284,7 @@ CvGBTrees::train( const CvMat* _train_data, int _tflag, sample_idx = cvCreateMat( 1, sample_idx_len, CV_32S ); for (int i=0; idata.i[i] = _sample_idx->data.i[i]; + icvSortInt(sample_idx->data.i, sample_idx_len, 0); } break; case CV_8S: case CV_8U: @@ -298,7 +301,6 @@ CvGBTrees::train( const CvMat* _train_data, int _tflag, } break; default: CV_Error(CV_StsUnmatchedFormats, "_sample_idx should be a 32sC1, 8sC1 or 8uC1 vector."); } - icvSortFloat(sample_idx->data.fl, sample_idx_len, 0); } else {