在定义“\\ haarcascade_frontalface_alt.xml”的路径时,在面部检测中获取空指针异常

时间:2015-09-06 09:10:55

标签: java opencv

public class FaceDetector {

    public static void main(String[] args) {

        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        System.out.println("\nRunning FaceDetector");

        CascadeClassifier faceDetector = new CascadeClassifier(FaceDetector.class.getResource("\\haarcascade_frontalface_alt.xml").getPath());
        Mat image = Highgui.imread(FaceDetector.class.getResource("abc.jpg").getPath());

        MatOfRect faceDetections = new MatOfRect();
        faceDetector.detectMultiScale(image, faceDetections);

        System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));

        for (Rect rect : faceDetections.toArray()) {
            Core.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height),
                    new Scalar(0, 255, 0));
        }

        String filename = "ouput.png";
        System.out.println(String.format("Writing %s", filename));
        Highgui.imwrite(filename, image);
    }
}

这是我的错误图片:

error

获取空点异常错误。如何解决我也尝试给出完整的路径,但同样的问题。请帮帮我。

1 个答案:

答案 0 :(得分:0)

您需要将绝对路径传递给CascadeClassifier。例如:

CascadeClassifier faceDetector = new CascadeClassifier("D:\\haarcascade_frontalface_alt.xml");

对图像进行读写操作也是如此。这是有线的,但事实是,在这种情况下,它无法读取文件。我的情况也是如此,我已经解决了。