我正在使用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);
}
答案 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
的构造函数需要两个参数width
和height
。您可能缺少一个逗号来划分参数。
因此代码应如下所示:
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);