我得到了这个简单的功能
private PointF getFaceCenter(Bitmap faceBitmap){
PointF faceCenter = new PointF(faceBitmap.getWidth() / 2, faceBitmap.getHeight() / 2);
Face[] faces = new Face[1];
mFaceDetector = new FaceDetector(
faceBitmap.getWidth(), faceBitmap.getHeight(), 1);
int detected = mFaceDetector.findFaces(faceBitmap, faces);
if (detected > 0) {
faces[0].getMidPoint(faceCenter);
}
return faceCenter;
}
我用它来获得面部中心,这样我就可以知道在哪里画我的照片。我注意到我的 UI 线程在重新绘制时一直卡住..
所以我把这个计算放在onMeasure
但每次onMeasure
调用 UI 都会变慢..
我开始分析:
我看到这mFaceDetector.findFaces
需要 100% 的 CPU 时间!!我删除了人脸检测代码,我的应用程序开始以超快的速度运行。
有什么我做错了吗?
任何解决方法?