2013-02-25 55 views
-3

我正在使用代码cascade classifier for face detection(有时也包含其他代码)。但是,该程序将终止在该行:未处理的人脸检测异常

face_cascade.detectMultiScale(
    frame_gray, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, Size(30, 30)); 
size(30,30);

基本。它给出的错误是“未处理的异常”,并进一步在“opencv_objdetectd.dll”。我在网上搜索过,但一直没能找到类似的问题或解决方案。我很感激任何帮助,因为我现在已经坚持了很多天。

+0

您必须提供更多的代码才能帮助您。 – rossb83 2013-02-25 13:25:25

+0

这里是链接到代码。我没有改变任何东西 http://docs.opencv.org/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html – argo 2013-02-25 13:40:28

+0

如果这是Size(30,30)的问题,你可以尝试将它移动到它自己的线。不过,我认为这是一个普通的结构,这意味着它在内存分配上崩溃,这可能意味着你在某个早期点写过内存。 – dutt 2013-02-25 13:48:40

回答

0

'未处理的异常'永远不会来自opencv代码库。

这个问题可能不是代码,但其他的,如在发布模式或其他方式使用调试DLL,错误的32/64位dll,等等。

我只是不相信你,大小(30,30)是问题。尝试:

face_cascade.detectMultiScale(frame_gray, faces); //还有一个供休息

级联检测默认ARGS经常失败为2倍的原因之一:

  1. 没有找到哈尔级联。检查一下。

    如果(!face_cascade.load( “bla.xml”)){ // 错误 }

  2. 你的形象是无效

    如果(frame_gray.empty()){ // error }

+0

m确定版本是正确的bcz以前使用过轮廓发现库。可以请你提到的DLL或其他要求s.may是我失去了一些东西。我已经使用 imageproc,highgui,core,objdetect ..所有调试版本从X86,vc10文件夹... – argo 2013-02-26 03:19:22