我在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 ??
请有人帮助我。
谢谢, 斯里尼瓦桑
答案 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";