diff --git a/apps/traincascade/imagestorage.cpp b/apps/traincascade/imagestorage.cpp index 3830a4b38d9ce30ef423a3458bdfe4ea7c3e3476..0f749f9b0197dd0f0ce7352be61c90aa753415d0 100644 --- a/apps/traincascade/imagestorage.cpp +++ b/apps/traincascade/imagestorage.cpp @@ -154,12 +154,15 @@ bool CvCascadeImageReader::PosReader::get( Mat &_img ) CV_Assert( _img.rows * _img.cols == vecSize ); uchar tmp = 0; size_t elements_read = fread( &tmp, sizeof( tmp ), 1, file ); - CV_Assert(elements_read == 1); + if( elements_read != 1 ) + CV_Error( CV_StsBadArg, "Can not get new positive sample. The most possible reason is " + "insufficient count of samples in given vec-file.\n"); elements_read = fread( vec, sizeof( vec[0] ), vecSize, file ); - CV_Assert(elements_read == (size_t)(vecSize)); + if( elements_read != (size_t)(vecSize) ) + CV_Error( CV_StsBadArg, "Can not get new positive sample. Seems that vec-file has incorrect structure.\n"); if( feof( file ) || last++ >= count ) - return false; + CV_Error( CV_StsBadArg, "Can not get new positive sample. vec-file is over.\n"); for( int r = 0; r < _img.rows; r++ ) {