-1

彼たちは、

カムから自分の顔を検出するコードを書きました。しかし、実行すると、「セグメンテーション エラー」と表示されます。何が悪いのかわからないので、よろしければご覧ください。これが私のコードです:

  String fn_haar = "./haarcascade_frontalface_default.xml";
    CascadeClassifier haar_cascade;
    haar_cascade.load(fn_haar);

vector< Rect_<int> > bodys;
haar_cascade.detectMultiScale(input, bodys);//, 1.1, 3, 0, Size(100,100), Size());
cv::Mat body;

Rect body_i = bodys[0];
if(!bodys.empty())
{
    Rect body_i = bodys[0];
    body = input(body_i);
    imshow("body", body);
    waitKey(0);
}

入力はカムからの画像です。

4

1 に答える 1

1
Rect body_i = bodys[0];
if(!bodys.empty())
{ ...

ほら、空かどうかをチェックする前に bodys[0] にアクセスしています(まあ、空の場合クラッシュします)

そこにそのコード行さえ必要ありませんよね?

また、さらなる「驚き」を避けるために、カスケードローディングを確認してください。

bool loaded = haar_cascade.load(fn_haar);
if ( ! loaded ) 
{ // whaa, check the path again. }
于 2013-10-18T15:46:25.393 に答える