这是我编写的用于运行android面部检测的代码。不幸的是,它找不到任何东西。我把它放在onPreviewFrame(数据,相机)。
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);
有什么想法吗?修复
答案 0 :(得分:0)
我认为您应首先检查您的位图数据是否正确。您必须在setPreviewSize
之前startPreview
。检查大小是否与预览数据相同。或者你可以硬编码到(640,480)进行测试。如果你的位图是正确的。由于输入数据质量,API可能无法工作。您可以转储一些数据,并尝试其他应用程序或库(如OpenCV)进行验证。祝你好运。