Quantcast
Channel: プログラム の個人的なメモ
Viewing all articles
Browse latest Browse all 860

【Java】 OpenCV ~ 基本編 / 顔検出 ~

$
0
0

はじめに

http://blogs.yahoo.co.jp/dk521123/36182105.html
の続き。設定は、上記の関連記事を参照のこと。

サンプル

 * 使用する画像
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!

関連記事

OpenCV ~ 入門編 ~

http://blogs.yahoo.co.jp/dk521123/36182105.html

Viewing all articles
Browse latest Browse all 860

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>