【问题标题】:Android FaceDetector.findFaces doesn't find any facesAndroid FaceDetector.findFaces 找不到任何人脸
【发布时间】:2013-07-31 08:51:18
【问题描述】:

这是我为运行 android 的人脸检测器而编写的代码。不幸的是,它没有找到任何东西。我已经把它放在了一个 onPreviewFrame(data, camera) 中。

Camera.Parameters parameters = camera.getParameters();
Camera.Size size = parameters.getPreviewSize();
YuvImage image = new YuvImage(data, ImageFormat.NV21, size.width, size.height, null);
Rect rectangle = new Rect(0, 0, size.width, size.height);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
int quality = 100;
image.compressToJpeg(rectangle, quality, stream);
Bitmap bitmap = BitmapFactory.decodeByteArray(stream.toByteArray(), 0, stream.size());
FaceDetector detector = new FaceDetector(size.width, size.height, 5);
FaceDetector.Face[] faces = new FaceDetector.Face[5];
int numFaces = detector.findFaces(bitmap, faces);
textView.setText("numFaces = " + numFaces);

有什么想法吗?修复?

【问题讨论】:

  • 您是否曾经转储过您的位图并检查它是否正确?
  • 是的,我已经做到了。

标签: android face-detection


【解决方案1】:

我认为您应该首先检查您的位图数据是否正确。您必须在startPreview 之前setPreviewSize。检查大小是否与您的预览数据相同。或者您可以将其硬编码为 (640, 480) 进行测试。如果你的位图是正确的。由于输入数据质量,API 可能无法工作。您可以转储一些数据,并尝试其他应用程序或库,例如 OpenCV,以进行验证。祝你好运。

【讨论】:

  • 我确信质量足够好。我正在将图像发送到服务器,它们看起来不错。
  • 如果是这样,我想结论是检测 API 无法在您的设备上运行。您是否在其他设备上验证过代码?
猜你喜欢
  • 2019-02-27
  • 2014-04-16
  • 2013-09-24
  • 2012-03-01
  • 2016-06-24
  • 1970-01-01
  • 1970-01-01
  • 2013-07-03
  • 2012-07-18
相关资源
最近更新 更多