網上很多安卓人臉識別的例子,但是大多在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>