added max window size parameter for cascade classifier

This commit is contained in:
Kirill Kornyakov
2010-11-18 09:10:47 +00:00
parent 8adc62016b
commit 515bdfa71e
3 changed files with 19 additions and 5 deletions

View File

@@ -986,7 +986,7 @@ CV_IMPL CvSeq*
cvHaarDetectObjects( const CvArr* _img,
CvHaarClassifierCascade* cascade,
CvMemStorage* storage, double scaleFactor,
int minNeighbors, int flags, CvSize minSize )
int minNeighbors, int flags, CvSize minSize, CvSize maxSize )
{
const double GROUP_EPS = 0.2;
CvMat stub, *img = (CvMat*)_img;
@@ -1003,6 +1003,12 @@ cvHaarDetectObjects( const CvArr* _img,
bool findBiggestObject = (flags & CV_HAAR_FIND_BIGGEST_OBJECT) != 0;
bool roughSearch = (flags & CV_HAAR_DO_ROUGH_SEARCH) != 0;
if( maxSize.height == 0 || maxSize.width == 0 )
{
maxSize.height = img->rows;
maxSize.width = img->cols;
}
if( !CV_IS_HAAR_CLASSIFIER(cascade) )
CV_Error( !cascade ? CV_StsNullPtr : CV_StsBadArg, "Invalid classifier cascade" );
@@ -1070,6 +1076,8 @@ cvHaarDetectObjects( const CvArr* _img,
if( sz1.width <= 0 || sz1.height <= 0 )
break;
if( winSize.width > maxSize.width || winSize.height > maxSize.height )
break;
if( winSize.width < minSize.width || winSize.height < minSize.height )
continue;