使用haar分类器检测面部

时间:2013-10-18 14:32:10

标签: opencv computer-vision

他们,

我写了一段代码,可以从凸轮上检测到我的脸。但是当我运行它时,它会说:分段错误。如果你能看看,我不知道出了什么问题。这是我的代码:

  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);
}

输入是来自凸轮的图像。

1 个答案:

答案 0 :(得分: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. }