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