FaceDetector未检测到带有前置摄像头的脸部

问题描述:

我遇到来自Android SDK的FaceDetector的一个奇怪问题。下面的代码工作正常,并在使用后置摄像头时正确检测脸部,但无论如何,当图片来自前置摄像头时,未检测到脸部。FaceDetector未检测到带有前置摄像头的脸部

FaceDetector.Face[] faces = new FaceDetector.Face[1]; 
FaceDetector faceDetector = new FaceDetector(width, height, 1); 
int facesFound = faceDetector.findFaces(picture, faces); 
Log.d(TAG, "Face found: "+(facesFound == 1)); 

我想找到一个解释,但我没有得出任何结论。我甚至尝试清除图片的元数据,以防FaceDetector设置为不检测来自前置摄像头的图片中的脸部。

+1

肯定有设备不检测来自FFC的面孔。什么['getMaxNumDetectedFaces()'](https://developer.android.com/reference/android/hardware/Camera.Parameters.html#getMaxNumDetectedFaces%28%29)返回?这是什么设备? – CommonsWare

+0

它返回0 - 这是华为Ascend P6。我不明白这个意思。为什么我不能用拍摄的图像做我想要的东西?那么脸部检测器如何知道可以检测到多少面部? –

+0

我的歉意 - 我专注于相机自己的人脸检测逻辑,不明确使用'FaceDetector'。 – CommonsWare

有多种因素可能是问题的原因。下面是一些我碰到的:

  • 的位图不是直立
  • 位图是不是565像素格式
  • 的图像质量差(太黑,太嘈杂,分辨率差,模糊通过手指等)