diff --git a/modules/text/src/ocr_hmm_decoder.cpp b/modules/text/src/ocr_hmm_decoder.cpp index 5b7a5aa31..e4367493b 100644 --- a/modules/text/src/ocr_hmm_decoder.cpp +++ b/modules/text/src/ocr_hmm_decoder.cpp @@ -935,7 +935,7 @@ public: protected: void normalizeAndZCA(Mat& patches); - double eval_feature(Mat& feature, double* prob_estimates); + double eval_feature(Mat& feature, vector& prob_estimates); private: int nr_class; // number of classes @@ -1089,7 +1089,7 @@ void OCRHMMClassifierCNN::eval( InputArray _src, vector& out_class, vector< (feature_max.at(0,k)-feature_min.at(0,k)); } - double *p = new double[nr_class]; + vector p(nr_class, 0); double predict_label = eval_feature(feature,p); //cout << " Prediction: " << vocabulary[predict_label] << " with probability " << p[0] << endl; if (predict_label < 0) @@ -1107,7 +1107,6 @@ void OCRHMMClassifierCNN::eval( InputArray _src, vector& out_class, vector< } } - } // normalize for contrast and apply ZCA whitening to a set of image patches @@ -1157,11 +1156,8 @@ void OCRHMMClassifierCNN::normalizeAndZCA(Mat& patches) } -double OCRHMMClassifierCNN::eval_feature(Mat& feature, double* prob_estimates) +double OCRHMMClassifierCNN::eval_feature(Mat& feature, vector& prob_estimates) { - for(int i=0;i(idx,i)*feature.at(0,idx); //TODO use vectorized dot product