本人是个新手,最近在写关于人脸识别的程序,先上部分代码:
int main()
{
cascade = (CvHaarClassifierCascade*)cvLoad( cascade_name, 0, 0, 0);
if ( !cascade )
{
fprintf( stderr, "ERROR:没有文件\n");
return -1;
}
storage = cvCreateMemStorage(0);//创建内存块
printf("服务器已经开启,等待需要客户端传送的图片到达!\n");
imgTemp = cvLoadImage("/Applications/MAMP/htdocs/androidserver/upload/temp.jpg", 1);
while(true){
IplImage* img = cvLoadImage("/Applications/MAMP/htdocs/androidserver/upload/temp.jpg", 1);
if(img&&test)
{
detect_and_draw(img); //人脸检测函数,并剪切检测的图片,并比对
//一旦检测到图片,程序执行到上面这个函数执行完便不再执行
if(CompareHist(img, imgTemp)==0)
{
imgTemp = img;
test=0;
}
else
test=1;
}
}
return 0;
}
求教,没有检测到图片循环正常,但一旦检测到图片程序就只能执行一次循环体,并在上面的标记处结束运行,控制台出现lldb调试命令,结束程序出现exit code 9,我知道exit code 0表示正常,那么这个9又表示什么意思?请各位大神指教。是不是主程序执行一次循环执行代码太多运算量太大导致的?顺便问一下我是否需要把这些放到新的线程里处理?