最近有人问我:在级联分类器中,如何根据设定的参数来计算多尺度的问题。并给我看了一篇网上找来的文章(里面展示的尺度尺寸有误),让我给讲解下:
多尺度尺寸的计算 主要是下面这个循环:
for(double factor=1;;factor *=scaleFactor) //多尺度检测(每次循环只用一个尺度来检测目标,循环N次就是N个尺度)
{
Size trainSize=getOriginalWindowSize();//训练样本的尺寸
Size checkWindowSize(cvRound(trainSize.width*factor),trainSize.height*factor); //多尺度检测窗口大小
Size ImgFactorSize(cvRound(img.cols/factor),img.rows/factor); //图像缩放后大小
Size processingWindowsSzie(ImgFactorSize.width-trainSize.width,ImgFactorSize.height-trainSize.height);//输入检测图像缩放后与训练样本尺寸之差
if(processingWindowsSzie.width<=0 ||processingWindowsSzie.height<=0)
break; //输入检测图像缩放后与训练样本尺寸之差小于0,跳出循环,多尺度检测结束
if(checkWindowSize.width<minObjectS