我有以下代码来检测人脸。
public class FaceDetection {
public static final String XML_FILE =
" C:/opencv/data/haarcascades/haarcascade_frontalface_default.xml";
public static void main(String[] args){
IplImage img = cvLoadImage("C:/Users/Ioanna/Desktop/lena.png");
detect(img);
}
public static void detect(IplImage src){
CvHaarClassifierCascade cascade = new
CvHaarClassifierCascade(cvLoad(XML_FILE));
CvMemStorage storage = CvMemStorage.create();
CvSeq sign = cvHaarDetectObjects(
src,
cascade,
storage,
1.5,
3,
CV_HAAR_DO_CANNY_PRUNING);
cvClearMemStorage(storage);
int total_Faces = sign.total();
for(int i = 0; i < total_Faces; i++){
CvRect r = new CvRect(cvGetSeqElem(sign, i));
cvRectangle (
src,
cvPoint(r.x(), r.y()),
cvPoint(r.width() + r.x(), r.height() + r.y()),
CvScalar.RED,
2,
CV_AA,
0);
}
cvShowImage("Result", src);
cvWaitKey(0);
}
}
运行时返回以下错误
OpenCV错误:未知函数中的空指针(无效的分类器级联),文件...... \ src \ opencv \ modules \ objdetect \ src \ haar.cpp,第1514行
线程“主”中的异常java.lang.RuntimeException:...... \ src \ opencv \ modules \ objdetect \ src \ haar.cpp:1514:错误:(-27)无效的分类器级联
at com.googlecode.javacv.cpp.opencv_objdetect.cvHaarDetectObjects(Native Method)
at com.googlecode.javacv.cpp.opencv_objdetect.cvHaarDetectObjects(opencv_objdetect.java:238)
at FaceDetection.FaceDetection.detect(FaceDetection.java:32)
at FaceDetection.FaceDetection.main(FaceDetection.java:24)
有人知道这是什么问题吗?
谢谢
最佳答案
复制链接C:/Users/Ioanna/Desktop/lena.png
并将其粘贴到该类的文件中,然后复制链接C:/opencv/data/haarcascades/haarcascade_frontalface_default.xml
并将其粘贴到该类的文件中
public static final String XML_FILE = "haarcascade_frontalface_default.xml";
IplImage img = cvLoadImage("lena.jpg");
关于opencv - JavaCV中的人脸检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19632227/