没有用于调用'ellipse'的匹配函数

时间:2016-08-19 14:51:37

标签: ios opencv

我正在使用OpenCV并检测用户的身体。但是我收到了错误:

  

没有匹配函数来调用'ellipse'

该功能存在于我的框架内,但仍显示错误:

// Body Detection

std::vector<cv::Rect> body;
cascade.detectMultiScale(mat, body, 1.1, 2, 18|9, cv::Size(3,7));

std::vector<cv::Rect>::const_iterator rs = body.begin();

for(int j = 0; j<body.size(); j++){
    cv::Point center(body[j].x + body[j].width * 0.5, body[j].y+ + body[j].height * 0.5);
    cv::ellipse(mat, center, Size(body[j].width * 0.5 + body[j].height * 0.5), 0, 0, 360, cv::Scalar(255, 0 , 255), 4, 8, 0);

}

Error

enter image description here

1 个答案:

答案 0 :(得分:1)

错误在这一行:

cv::ellipse(mat, center, Size(body[j].width * 0.5 + body[j].height * 0.5), 0, 0, 360, cv::Scalar(255, 0 , 255), 4, 8, 0);
当您传递不同的cv::ellipse对象时,

cv::Size需要Size个对象。此外,cv::Size的构造函数需要两个参数widthheight。您可能缺少一个逗号来划分参数。

因此代码应如下所示:

cv::ellipse(mat, center, cv::Size(body[j].width * 0.5, body[j].height * 0.5), 0, 0, 360, cv::Scalar(255, 0 , 255), 4, 8, 0);