2013-05-20 198 views
0

我正在使用Android的api 14 Camera Face Detection在相机检测到的人脸上绘制矩形。 它适用于大多数设备(Galaxy Nexus,S4,S Note 2)。但是,在S3 SGH-T999和SGH-I747(Tmobile和AT锁定版本)中,返回的Face.rect对象超出了[-1000,1000]的正常范围。 具体来说,Face.rect.left = -1165(或其他数字< -1000)。android人脸检测坐标

引用自文档 [Camera.Face.rect]: “坐标可以小于-1000或大于1000.但至少有一个顶点将在(-1000,-1000)和(1000,1000)之内。”

这是我使用 [link here]方法: onFaceDetection(android.hardware.Camera.Face [],android.hardware.Camera)

其他数据:

  • 应用被设置为纵向只有
  • 使用应用的前置摄像头只有

我的问题是:

  1. 有没有人遇到同样的问题?
  2. 这个小于-1000的坐标是什么意思?
  3. 如何解决这个问题,以正确绘制正确的矩形检测脸上?

我环顾了一周,没有发现其他用户提出的问题。 同样,我的应用程序在除了这两个设备之外的其他设备上工作正常。

在此先感谢。

+0

你能帮我画正确的矩形吗?我无法使用从脸部检测获得的坐标转换为1280x720的屏幕。 – bofredo

回答

1

我面临着类似的问题。我发现的是,从onFaceDetection回调中获得的脸部矩形,来自不同的Android手机中的不同坐标系统。我在三星和Micromax测试了我的应用程序。它遵循android文档中的矩形坐标值(即-1000到1000)。

当我测试我的应用程序在索尼xperia L和索尼xperia M,我观察到它不遵循根据android doc的坐标。相反,它遵循coordinates which has origin (0,0) at right top corner of the screen for portrait模式。

当我应用矩阵据此,我找到了完美的矩形绘图。这导致我更深入挖掘android堆栈。我相信它是Android手机的供应商谁操纵矩形坐标不是Android原始堆栈。

我的问题是有没有什么办法可以找出矩形的获得,在绘制矩形之前跟随哪个坐标系?

+0

Hi @ sam18,你有没有找到一个标准的方法来映射相机脸部检测API的坐标? –