-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 回答