サンプル
* 使用する画像
![http://www.cs.cmu.edu/~chuck/lennapg/playboy_backups/lena_lg.jpg]()
* OpenCV : Version3.1.0
顔検出
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfRect;
import org.opencv.core.Rect;
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);
String input = "C:/temp/lena_lg.jpg";
String output = "C:/temp/result2.jpg";
CascadeClassifier faceDetector = new CascadeClassifier(
"C:/work/opencv/sources/data/haarcascades/haarcascade_frontalface_alt.xml");
Mat image = Imgcodecs.imread(input);
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, rect.tl(), rect.br(), new Scalar(0, 255, 0, 255), 3);
}
System.out.println(String.format("Writing %s", output));
Imgcodecs.imwrite(output, image);
System.out.println("Done!");
}
}
出力結果
Detected 1 faces
Writing C:/temp/result2.jpg
Done!