【问题标题】:OpenCV Face Detection - vector issueOpenCV 人脸检测 - 矢量问题
【发布时间】: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&lt;Rect&gt;' to 'vector&lt;Rect&gt; &amp;' for 2nd argument.

这里发生了什么?显然编译器对第二个参数有异议。我使用的是不同类型的向量吗?

谢谢,詹姆斯

XCode 4.2.1 开发工具包 5.0 OpenCV 2.

【问题讨论】:

  • 我不知道是你吗?如果您删除 std:: 命名空间显式范围,它会编译吗?如果是这样,那么在 OpenCV 中查找 vector 的定义,因为他们可能已经定义了自己的定义。有一个 cv::Vector 可能是您应该使用的类型......我不熟悉这个库。
  • 很确定我应该使用std::。试过cv::没有效果。
  • 也许尝试一个 using std::vector; 指令然后将其声明为 vector&lt;Rect&gt; faces; 它似乎认为由于范围限定符导致重载不匹配而需要进行转换。
  • 没有效果。很奇怪。
  • 把第二个参数的定义改成std::vector&lt;RECT&gt; &amp;objects有帮助吗?

标签: iphone c++ opencv


【解决方案1】:

你必须添加

using namespace cv; 

在开头。

【讨论】:

  • 谢谢!你节省了我的时间。
猜你喜欢
  • 1970-01-01
  • 2012-02-04
  • 2013-05-24
  • 1970-01-01
  • 1970-01-01
  • 2014-01-31
  • 2012-04-15
  • 2012-02-25
  • 2016-05-05
相关资源
最近更新 更多