网上很多安卓人脸识别的例子,但是大多在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处理
}
}
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"> </span>