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);
}
}
这是我的错误图片:
获取空点异常错误。如何解决我也尝试给出完整的路径,但同样的问题。请帮帮我。
答案 0 :(得分:0)
您需要将绝对路径传递给CascadeClassifier
。例如:
CascadeClassifier faceDetector = new CascadeClassifier("D:\\haarcascade_frontalface_alt.xml");
对图像进行读写操作也是如此。这是有线的,但事实是,在这种情况下,它无法读取文件。我的情况也是如此,我已经解决了。