android面部检测坐标

时间:2013-05-20 19:26:26

标签: android camera detection

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

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

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

其他数据:

  • app设置为仅限肖像
  • app仅使用前置摄像头

我的问题是:

  1. 有没有人遇到过同样的问题?
  2. 这个小于-1000的坐标是什么意思?
  3. 如何解决此问题,以便在检测到的脸部上正确绘制正确的矩形?
  4. 我已经环顾了一周,并没有发现其他用户提出此问题。 同样,我的应用程序在其他设备上工作正常,除了那两个。

    提前致谢。

1 个答案:

答案 0 :(得分:1)

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

当我在Sony xperia L和Sony xperia M上测试我的应用程序时,我发现它根据android doc没有遵循坐标。而是遵循coordinates which has origin (0,0) at right top corner of the screen for portrait模式。

当我根据那个应用矩阵时,我找到了完美的矩形绘图。这让我更多地了解android堆栈。我相信它是android手机的供应商操纵矩形坐标而不是android原始堆栈。

我的问题是有没有办法找出所获得的矩形,在绘制矩形之前遵循哪个坐标系?