【JavaでOpenCVアプリケーション作成(備忘録)その2】
画像認識する方法について調べた。写真を読み込んでその中から人の顔を認識して矩形を表示する。
CascadeClassiferクラスのコンストラクタで読み込んでいるのが顔の正面の検出器というファイル。
detectMultiScaleで検出されると結果がfacesに格納される。
あとはfacesからPointを取り出して矩形で囲っている。
MatOfRect faces = new MatOfRect(); CascadeClassifier cc = new CascadeClassifier( "/OpenCV/data/haarcascades/haarcascade_frontalface_default.xml" ); if (!cc.empty()) { cc.detectMultiScale(image,faces); List<Rect> list = faces.toList(); Iterator<Rect> iterator = list.iterator(); while(iterator.hasNext()) { Rect rect = iterator.next(); Core.rectangle(image, rect.br(), rect.tl(), new Scalar(0,255,0)); } }