diff --git a/modules/ml/src/inner_functions.cpp b/modules/ml/src/inner_functions.cpp index e653407343..495edd4313 100644 --- a/modules/ml/src/inner_functions.cpp +++ b/modules/ml/src/inner_functions.cpp @@ -676,7 +676,7 @@ cvPreprocessCategoricalResponses( const CvMat* responses, if( r_type != CV_32FC1 && r_type != CV_32SC1 ) CV_ERROR( CV_StsUnsupportedFormat, "Unsupported response type" ); - r_step = responses->step ? responses->step / CV_ELEM_SIZE(responses->type) : 1; + r_step = responses->rows == 1 ? 1 : responses->step / CV_ELEM_SIZE(responses->type); if( sample_idx ) { diff --git a/modules/ml/src/svm.cpp b/modules/ml/src/svm.cpp index 5544d3d7f7..8c32655f16 100644 --- a/modules/ml/src/svm.cpp +++ b/modules/ml/src/svm.cpp @@ -1330,6 +1330,8 @@ bool CvSVM::do_train( int svm_type, int sample_count, int var_count, const float const int sample_size = var_count*sizeof(samples[0][0]); int i, j, k; + cvClearMemStorage( storage ); + if( svm_type == ONE_CLASS || svm_type == EPS_SVR || svm_type == NU_SVR ) { int sv_count = 0;