我正在使用 OpenCV 并检测用户的 body 。但我收到错误:
No matching function for call to '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);
}
最佳答案
错误在这一行:
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);
关于ios - 没有匹配函数调用 'ellipse',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39042020/