相机面部检测坐标到屏幕坐标

时间:2014-02-28 17:59:54

标签: android android-camera coordinates

我最近开始玩Android的相机api。我正在使用面部检测,它是回调setFaceDetectionListener。我无法理解如何将faces[0].rect.centerX();faces[0].rect.centerY()转换为可在屏幕上使用的内容,例如围绕该点居中移动图像。

任何人都可以帮助我理解如何从相机给出的coord系统转换为我可以用来设置活动元素的东西。

2 个答案:

答案 0 :(得分:6)

来自docs

  

( - 1000,-1000)表示摄像机视野的左上角,(1000,1000)表示视野的右下角。

所以要输入屏幕坐标(伪代码):

screenX = (coord.x +1000) * screen.width / 2000
screenY = (coord.y +1000) * screen.height / 2000

答案 1 :(得分:0)

使用此代码(假设您有宽度和高度整数变量):

LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.setMargins(faces[0].rect.centerX()-width/2,faces[0].rect.centerY()-height/2, 0,0);

...并获得宽度和高度:

public void onWindowFocusChanged(boolean hasFocus){
    width=image.getWidth();
    height=image.getHeight();
}