Commit b5f57009 authored by Marina Kolpakova's avatar Marina Kolpakova

fixed build with gcc 4.5+ (#1774)

parent cf02b2e2
...@@ -105,7 +105,7 @@ float ...@@ -105,7 +105,7 @@ float
CvEM::predict( const CvMat* _sample, CvMat* _probs, bool isNormalize ) const CvEM::predict( const CvMat* _sample, CvMat* _probs, bool isNormalize ) const
{ {
Mat prbs0 = cvarrToMat(_probs), prbs = prbs0, sample = cvarrToMat(_sample); Mat prbs0 = cvarrToMat(_probs), prbs = prbs0, sample = cvarrToMat(_sample);
int cls = emObj.predict(sample, _probs ? _OutputArray(prbs) : _OutputArray::_OutputArray()); int cls = emObj.predict(sample, _probs ? _OutputArray(prbs) : cv::noArray());
if(_probs) if(_probs)
{ {
if(isNormalize) if(isNormalize)
...@@ -212,15 +212,15 @@ bool CvEM::train( const Mat& _samples, const Mat& _sample_idx, ...@@ -212,15 +212,15 @@ bool CvEM::train( const Mat& _samples, const Mat& _sample_idx,
emObj = EM(_params.nclusters, _params.cov_mat_type, _params.term_crit); emObj = EM(_params.nclusters, _params.cov_mat_type, _params.term_crit);
bool isOk = false; bool isOk = false;
if( _params.start_step == EM::START_AUTO_STEP ) if( _params.start_step == EM::START_AUTO_STEP )
isOk = emObj.train(_samples, _labels ? _OutputArray(*_labels) : _OutputArray::_OutputArray(), isOk = emObj.train(_samples, _labels ? _OutputArray(*_labels) : cv::noArray(),
probs, likelihoods); probs, likelihoods);
else if( _params.start_step == EM::START_E_STEP ) else if( _params.start_step == EM::START_E_STEP )
isOk = emObj.trainE(_samples, means, covsHdrs, weights, isOk = emObj.trainE(_samples, means, covsHdrs, weights,
_labels ? _OutputArray(*_labels) : _OutputArray::_OutputArray(), _labels ? _OutputArray(*_labels) : cv::noArray(),
probs, likelihoods); probs, likelihoods);
else if( _params.start_step == EM::START_M_STEP ) else if( _params.start_step == EM::START_M_STEP )
isOk = emObj.trainM(_samples, prbs, isOk = emObj.trainM(_samples, prbs,
_labels ? _OutputArray(*_labels) : _OutputArray::_OutputArray(), _labels ? _OutputArray(*_labels) : cv::noArray(),
probs, likelihoods); probs, likelihoods);
else else
CV_Error(CV_StsBadArg, "Bad start type of EM algorithm"); CV_Error(CV_StsBadArg, "Bad start type of EM algorithm");
...@@ -237,7 +237,7 @@ bool CvEM::train( const Mat& _samples, const Mat& _sample_idx, ...@@ -237,7 +237,7 @@ bool CvEM::train( const Mat& _samples, const Mat& _sample_idx,
float float
CvEM::predict( const Mat& _sample, Mat* _probs, bool isNormalize ) const CvEM::predict( const Mat& _sample, Mat* _probs, bool isNormalize ) const
{ {
int cls = emObj.predict(_sample, _probs ? _OutputArray(*_probs) : _OutputArray::_OutputArray()); int cls = emObj.predict(_sample, _probs ? _OutputArray(*_probs) : cv::noArray());
if(_probs && isNormalize) if(_probs && isNormalize)
normalize(*_probs, *_probs, 1, 0, NORM_L1); normalize(*_probs, *_probs, 1, 0, NORM_L1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment