我正在使用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)
其他数据:
我的问题是:
我已经环顾了一周,并没有发现其他用户提出此问题。 同样,我的应用程序在其他设备上工作正常,除了那两个。
提前致谢。
答案 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原始堆栈。
我的问题是有没有办法找出所获得的矩形,在绘制矩形之前遵循哪个坐标系?