关于使用级联分类器人脸识别的菜鸟提问感谢!

最近学习需要使用级联分类器进行人脸识别,由于之前不是计算机专业的,可能有些根本性问题搞的不明白,特向大神们学习一下,如果涉及基础知识,您可告诉我下知识点是什么我自己去找资料学习。谢谢!

不明白限定符const在此的作用,以及为何都要加上&?

该段代码是整个程序中识别人脸的函数定义部分,已联系不上原作者(毕业),结合OPENCV官方级联分类器的样例程序,不懂都加上&是什么意思。

我理解该函数应该是返回若干个Rect放入到 roi_rects_face容器中,但是哪个语句完成了这个功能?

首次提问,有不合适的地方我尽快修改!谢谢!
主程序调用函数语句

 std::vector<Rect> roi_rects_face;
    detectFace(gray, m_cascade_face, roi_rects_face);

定义函数:

void detectFace(const cv::Mat &gray, cv::CascadeClassifier &cascade, std::vector<cv::Rect> &rects)
{
    if( !gray.empty() )//读取图片数据不能为空
    {
        cv::Mat copyImg(gray.rows, gray.cols, CV_8UC1);

        gray.copyTo(copyImg);

        //直方图均衡
        equalizeHist(copyImg, copyImg);

        rects.clear();
   //级联分类器检测
        cascade.detectMultiScale(copyImg, rects, 1.3,  4, 0, Size(30,30), Size(200, 200));
    }
} 

http://www.cnblogs.com/cezorzhao/archive/2012/12/30/face_detect.html

您发的就是我说的官方样例,就是这个和我现在要搞明白的这个版本有些出入,后面的检测参数部分是没啥问题的,主要是前面那块对比官方版本不太明白,