Opencv Face Detection on Android
{
String sf = "/sdcard/cv/lbpcascade_frontalface.xml";
CascadeClassifier faceDetector = new CascadeClassifier(sf);
String ef = "/sdcard/cv/haarcascade_eye.xml";
CascadeClassifier eyeDetector = new CascadeClassifier(ef);
String mf = "/sdcard/cv/lena.png";
Mat im = Imgcodecs.imread(mf);
MatOfRect faceDetections = new MatOfRect();
faceDetector.detectMultiScale(im, faceDetections);
/*
Rect[] facesArray = faceDetections.toArray();
for(int i = 0; i < facesArray.length; i++) {
}
*/
Mat faceROI = null;
for(Rect rect:faceDetections.toArray()){
MatOfRect eyeDetections = new MatOfRect();
faceROI = im.submat(rect);
eyeDetector.detectMultiScale(faceROI, eyeDetections);
Rect[] eyesArray = eyeDetections.toArray();
for(Rect erect:eyeDetections.toArray()) {
Imgproc.rectangle(faceROI, new Point(erect.x, erect.y), new Point(erect.x + erect.width,erect.y + erect.width), new Scalar(0,0,255),2);
}
Imgproc.rectangle(im, new Point(rect.x,rect.y), new Point(rect.x+rect.width,rect.y+rect.width), new Scalar(0,0,255),2);
}
Imgcodecs.imwrite("/sdcard/cv/rectlena.png", im);
Imgcodecs.imwrite("/sdcard/cv/rectlenaeyes.png", faceROI);
}
posted on 2018-04-13 09:48 fanbird2008 阅读(240) 评论(0) 收藏 举报
浙公网安备 33010602011771号