Facede detection [closed]
package application;
import org.opencv.core.Core;
import org.opencv.core.Rect;
import org.opencv.core.Mat;
import org.opencv.core.MatOfRect;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.opencv.objdetect.CascadeClassifier;
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().substring(1));
Mat image = Imgcodecs.imread(FaceDetector.class.getResource("D:\\wallpaper\\my.jpg").getPath().substring(1));
MatOfRect faceDetections = new MatOfRect();
faceDetector.detectMultiScale(image, faceDetections);
System.out.println(String.format("Detected %s faces", faceDetections.toArray().length));
for (Rect rect : faceDetections.toArray()) {
Imgproc.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.jpg";
System.out.println(String.format("Writing %s", filename));
Imgcodecs.imwrite(filename, image);
}
}
OUTPUT::::::
Running FaceDetector......................... Exception in thread "main" java.lang.NullPointerException at application.FaceDetector.main(FaceDetector.java:22)
n00b lesson 1: whenever you load resouces, check if it succeeded.
no it is not succeeded. what to do now? and thanks for responce
since this is on desktop, try to skip the
FaceDetector.class.getResource()
part, and use an absolute path (esp. for the cascade file)sorry bro I don't get it...
CascadeClassifier faceDetector = new CascadeClassifier(FaceDetector.class.getResource("C:\opencv\sources\data\haarcascades\haarcascade_frontalface_alt").getPath().substring(1));
I add path but still same error occur
new CascadeClassifier("c:/opencv/data/haarcascades/haarcascade_frontalface_alt.xml");
or similarI do what you say but still same error
new CascadeClassifier("c:/opencv/data/haarcascades/haarcascade_frontalface_alt.xml");
output:: Running FaceDetector Exception in thread "main" java.lang.NullPointerException at application.FaceDetector.main(FaceDetector.java:23)
You need to debug your code and identify the part where it goes wrong... until then it is quite difficult to state what is wrong. We now know your classifier is loaded correctly, but how about
image
? Can you visualise it before you do the classifier detector and report back the result?yes image is visualize and I do debug and it stop and give error in number 23 line "Mat image = Imgcodecs.imread(FaceDetector.class.getResource("D:/wallpaper/my.jpg").getPath().substring(1));" @StevenPuttemans