无法在opencv中加载haarcascadeshaarcascade.xml

时间:2011-04-12 13:23:04

标签: android image image-processing opencv

我在Android中尝试使用opencv进行人脸检测,但我无法加载对象检测xml文件。

代码如下,

.....

static CvHaarClassifierCascade* cascade = 0;
  CvMemStorage* storage = 0;
  LOGI("before haarcascade");  

if (!cascade) {
    const char* file = "/Users/Downloads/OpenCV-

2.2.0/data/haarcascadeshaarcascade_frontalface_alt.xml";
    cascade = (CvHaarClassifierCascade *)cvLoad(file, 0, 0, 0);
    storage = cvCreateMemStorage(0);
  }  

if(cascade)
      LOGI("xml loaded");
  else
          LOGI("unable to load the xml");

...

在logcat中显示无法加载xml。

如何加载xml ??

请有人帮助我。

谢谢, 斯里尼瓦桑

4 个答案:

答案 0 :(得分:2)

Daft问题......但文件确实存在不是吗?

如果该代码在您的Android设备上运行,但该文件存在于主机(Mac OS)工作站上,则表示您运气不佳!

答案 1 :(得分:1)

应该是路径问题。请编写完整路径或将xml文件与代码一起保存,以便直接获取它。

答案 2 :(得分:0)

尝试在加载级联之前放置它:

    /////////////////////////////////////////////////////////////////////////
///OpenCV Bug Work-around////////////////////////////////////////////////
IplImage* dummyImage = cvCreateImage(cvSize(1, 1), IPL_DEPTH_8U, 1);/////
cvErode(dummyImage, dummyImage);/////////////////////////////////////////
cvReleaseImage(&dummyImage);/////////////////////////////////////////////
///OpenCV Bug Work-around////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////

答案 3 :(得分:0)

你不需要一个分隔haarcades和haarcascade_frontalface之间斜杠的目录......

const char* file = "/Users/Downloads/OpenCV-

2.2.0/data/haarcascades/haarcascade_frontalface_alt.xml";