FaceDetectionListener的注意事项

网上很多安卓人脸识别的例子,但是大多在FaceDetectionListener里只写了log,并没有图形化显示。

实际操作中,是有问题的。

在回调方法 public void onFaceDetection(Face[] faces, Camera camera)中。face的坐标范围是(-1000, -10000)到(1000, 1000),所以需要缩放的转换,如果在使用Camera时,旋转了角度,那么face里的坐标也需要做一次相应的转换

public void onFaceDetection(Face[] faces, Camera camera) {

                        if(faces.length>0){ int cx = -face.rect.centerY(); //因为之前对camera做了旋转,所以这里需要转换一下坐
                        int cy = -face.rect.centerX(); //因为之前对camera做了旋转,所以这里需要转换一下坐

                        cx = (int) ((cx+1000f)*view_W/2000f); //缩放坐标
                        cy = (int) ((cy+1000f)*view_H/2000f); //缩放坐标
                        postPostToView(cx, cy); //将结果坐标传给View处理
                        }
                    }

 

你可能感兴趣的:(android人脸识别,位置错误,onFaceDetection)