2016-08-19 13 views
0

私は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

+2

おそらく 'Size'コンストラクタ内のカンマを逃しています。おそらく 'cv :: Size'が必要でしょう – Miki

+0

ありがとう。それは私の問題を解決しました。しかし、私は正しい結果を得ていません。程遠い。私は正しいことをしていますか? – Nitesh

+0

何が正しくありませんか? – Miki

答えて

1

エラーはこの中です:

No matching function for call to 'ellipse'

この関数は、まだそれがエラーを示しています私のフレームワークの内部に存在する。しかし、私はエラーを取得しています行:

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は、別のSizeオブジェクトを渡している間に、cv::Sizeオブジェクトが必要です。また、cv::Sizeのコンストラクタには、2つのパラメータ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); 
関連する問題