他们,
我写了一段代码,可以从凸轮上检测到我的脸。但是当我运行它时,它会说:分段错误。如果你能看看,我不知道出了什么问题。这是我的代码:
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);
}
输入是来自凸轮的图像。
答案 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. }