【问题标题】:Face Detection in JavaCVJavaCV中的人脸检测
【发布时间】:2013-11-07 01:46:06
【问题描述】:

我有以下代码来检测人脸。

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 行 线程“main”中的异常 java.lang.RuntimeException: ......\src\opencv\modules\objdetect\src\haar.cpp:1514: error: (-27) Invalid classifier cascade

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)

有谁知道问题出在哪里?

谢谢

【问题讨论】:

  • 您的文件名以空格开头
  • 非常感谢!我没注意到

标签: opencv javacv


【解决方案1】:

复制链接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"); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-18
    • 2014-05-01
    • 2012-04-17
    • 2019-11-18
    • 2012-06-25
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    相关资源
    最近更新 更多