【发布时间】:2023-03-28 04:25:01
【问题描述】:
我正在使用以下代码在 iPhone 上使用 OpenCV 执行人脸检测。
std::vector<Rect> faces;
face_cascade.detectMultiScale( frame_gray, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, cv::Size(15, 15) );
但是,当我尝试构建应用程序时,detectMultiScale 函数调用会引发错误。 "没有匹配的成员函数调用 'detectMultiScale'"。
下面给出进一步的解释:
错误读取:Candidate function not viable: no known conversion from 'std::vector<Rect>' to 'vector<Rect> &' for 2nd argument.
这里发生了什么?显然编译器对第二个参数有异议。我使用的是不同类型的向量吗?
谢谢,詹姆斯
XCode 4.2.1 开发工具包 5.0 OpenCV 2.
【问题讨论】:
-
我不知道是你吗?如果您删除
std::命名空间显式范围,它会编译吗?如果是这样,那么在 OpenCV 中查找vector的定义,因为他们可能已经定义了自己的定义。有一个cv::Vector可能是您应该使用的类型......我不熟悉这个库。 -
很确定我应该使用
std::。试过cv::没有效果。 -
也许尝试一个
using std::vector;指令然后将其声明为vector<Rect> faces;它似乎认为由于范围限定符导致重载不匹配而需要进行转换。 -
没有效果。很奇怪。
-
把第二个参数的定义改成
std::vector<RECT> &objects有帮助吗?