Ask Your Question

KorobOK's profile - activity

2016-08-01 08:37:57 -0600 received badge  Teacher (source)
2016-08-01 01:00:55 -0600 received badge  Scholar (source)
2016-08-01 00:10:10 -0600 received badge  Self-Learner (source)
2016-07-31 23:24:32 -0600 received badge  Editor (source)
2016-07-31 23:24:11 -0600 answered a question Can't find any faces on pictures

The problem was in Cyrillic symbols in path. I remove these and replace my code by following:

String pathToCascade = Paths.get(
                    getClass().getResource("/haarcascades/haarcascade_frontalface_alt.xml")
.toURI().normalize()).toString();
faceDetector = new CascadeClassifier(pathToCascade);


Thanks to @Barek

2016-07-31 23:14:44 -0600 asked a question How to instanciate FaceRecognizer in Java

I want to use org.opencv.contrib.FaceRecognizer from opencv-2413.jar. How can I instanciate FaceRecognizer object?


These do not work:

FaceRecognizer rec = new FaceRecognizer();
FaceRecognizer rec = createLBPHFaceRecognizer();
FaceRecognizer rec = createEigenFaceRecognizer();
FaceRecognizer rec = createFisherFaceRecognizer();
2016-07-28 18:14:06 -0600 commented question Can't find any faces on pictures

String pathToCascade = getClass().getResource("/haarcascades/haarcascade_frontalface_alt2.xml").getPath();. And I tried simple C:\haarcascade_frontalface_alt2.xml, the result is the same.

2016-07-28 03:07:07 -0600 asked a question Can't find any faces on pictures

I'm java programmer and I'm using opencv-2413.jar library.

ByteArrayOutputStream streamBA = new ByteArrayOutputStream();
//wi - is instance of WritableImage (images with faces are big: 720p and 1080p, and correct. I save it to disk and they opens well)
RenderedImage ri = SwingFXUtils.fromFXImage(wi, null);
ImageIO.write(ri, "jpg", streamBA);
byte[] img = streamBA.toByteArray();
MatOfByte rawImage = new MatOfByte(img);
Mat image = Highgui.imdecode(rawImage, Highgui.CV_LOAD_IMAGE_GRAYSCALE);
System.out.println(image.toString());
MatOfRect faces = new MatOfRect();
// I'm trying different cascades, the result is the same
CascadeClassifier faceDetector = new CascadeClassifier(<path/to/cascade>);
faceDetector.detectMultiScale(image, faces);
System.out.println(faces.elemSize() + "\n");
for (Rect r : faces.toList()) {
    System.out.println(r.x + " " + r.y);
}

Everything is going ok, but faces.elemSize() is always 0. What I'm doing wrong?