我在这个https://developers.google.com/vision/android/detect-faces-tutorial库中读到某个地方,它只能检测图片中一张脸的轮廓。而不是我升级了Firebase ML Kit,希望他们能解决这个问题,但是我的代码只给我画了一张脸的轮廓。有没有一种方法可以通过ML Kit人脸检测来检测所有轮廓?如果没有,是否有解决方法?我什至不认为我需要所有轮廓。我只需要椭圆形的轮廓,所以我知道整个脸在哪里。
FirebaseVisionFace face = myFaces.get(i);
FirebaseVisionFaceContour contour;
int k = 0;
contour = face.getContour(FirebaseVisionFaceContour.FACE);
List<FirebaseVisionPoint> points = contour.getPoints();
for (int j = 0; j < points.size(); j++) {
if (j < contour.getPoints().size() - 2) {
canvas.drawLine(contour.getPoints().get(j).getX(), contour.getPoints().get(j).getY(), contour.getPoints().get(j + 1).getX(), contour.getPoints().get(j + 1).getY(), mPaint);
} else if (j == contour.getPoints().size()-1) {
canvas.drawLine(contour.getPoints().get(j).getX(), contour.getPoints().get(j).getY(), contour.getPoints().get(0).getX(), contour.getPoints().get(0).getY(), mPaint);
}
}
}
((ImageView) findViewById(R.id.image_view)).setImageBitmap(finalProduct);```
答案 0 :(得分:0)
根据 this 文档,如果从 setCountourMode
到 ALL_CONTOURS
,您只能检测图像中最突出的人脸。
如果您想检测多个人脸,您可以setContourMode
到NO_CONTOURS
。