
com.neuronrobotics.imageprovider.HaarDetector Maven / Gradle / Ivy
package com.neuronrobotics.imageprovider;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.opencv.core.Core;
import org.opencv.core.CvException;
import org.opencv.core.Mat;
import org.opencv.core.MatOfRect;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.core.Size;
import org.opencv.imgproc.Imgproc;
import org.opencv.objdetect.CascadeClassifier;
public class HaarDetector implements IObjectDetector{
private MatOfRect faceDetections = new MatOfRect();;
private CascadeClassifier faceDetector ;
private double scale=.3;
public HaarDetector(File cascade){
// Create a face detector from the cascade file in the resources
// directory.
faceDetector = new CascadeClassifier(cascade.getAbsolutePath());
}
public List getObjects(BufferedImage in, BufferedImage disp){
Mat inputImage = new Mat();
OpenCVImageConversionFactory.bufferedImageToMat(in,inputImage);
try{
Mat localImage = new Mat();
Size s =new Size(in.getWidth(),in.getHeight());
Imgproc.resize(inputImage, localImage, new Size(s.width*scale,s.height*scale));
Imgproc.cvtColor(localImage, localImage, Imgproc.COLOR_BGR2GRAY);
faceDetector.detectMultiScale(localImage, faceDetections);
Rect [] smallArray = faceDetections.toArray();
ArrayList myArray = new ArrayList();
for(int i=0;i();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy