我正在查看关于Cascade Classifiers的OpenCV教程,并且碰巧看到了这种语法:
std::vector<Rect> faces;
Mat frame_gray;
Mat faceROI = frame_gray( faces[i] );,
在frame_gray实例化和faceROI实例化之间还有一些其他代码。我的问题是 - faceROI实例化行正在做什么/它是如何工作的?它看起来像复制构造函数用法,但faces [i]参数让我感到困惑。
http://docs.opencv.org/trunk/db/d28/tutorial_cascade_classifier.html - 教程 http://docs.opencv.org/3.1.0/d3/d63/classcv_1_1Mat.html#af1d014cecd1510cdf580bf2ed7e5aafc - Mat类的文档
答案 0 :(得分:5)
该行正在调用
Mat operator()(const Rect &)
而不是复制构造函数。此运算符用于像函数一样调用对象。
您可以在此处找到有关此运算符的信息: http://docs.opencv.org/3.1.0/d3/d63/classcv_1_1Mat.html#a07413f2e3e63a12185b8b218c24c7270