首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onFaceDetection在运行时只调用一次或两次,但在使用断点进行调试时工作得很好。

onFaceDetection在运行时只调用一次或两次,但在使用断点进行调试时工作得很好。
EN

Stack Overflow用户
提问于 2015-08-11 13:37:23
回答 1查看 185关注 0票数 3

这是我用于人脸检测的代码,问题是当我用android调试这段代码时,onFaceDetection方法被多次调用,而face被完美地检测到(当我在方法中放置一个断点时)。但是当我在没有任何断点的情况下运行它时,这个方法只被调用2-3次,并且不会发生人脸检测。任何有关这方面的帮助都将是非常感谢的,因为您可以从我尝试停止并开始人脸检测的代码中看到这一点。

代码语言:javascript
复制
void setFaceDetectionListener() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
        mFaceDetectionListener = new Camera.FaceDetectionListener() {
            Handler faceDetectionHandler;
            @Override
            public void onFaceDetection(final Camera.Face[] faces, final Camera camera) {
                if(faceDetectionHandler == null){//Initialize
                    faceDetectionHandler = new Handler();
                    Toast.makeText(HWTestActivity.this,
                            UiMessages.MSG_SHOW_YOUR_FACE.toString(),
                            Toast.LENGTH_SHORT).show();
                }
                faceDetectionHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        Log.e("faceDetect", "No of faces = " + faces.length);
                        if (!is_face_detected) {
                            Toast.makeText(HWTestActivity.this,
                                    UiMessages.MSG_DETECTING_YOUR_FACE.toString(),
                                    Toast.LENGTH_SHORT).show();
                            is_face_detected = faces.length > 0;
                        }
                        if (faces.length > 0) {
                            Toast.makeText(HWTestActivity.this,
                                    UiMessages.MSG_FACE_DETECTED.toString(),
                                    Toast.LENGTH_SHORT).show();
                            camera.stopFaceDetection();
                        } else {
                            camera.stopFaceDetection();
                            camera.startFaceDetection();
                        }
                    }
                });
            }
        };
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-12 14:50:32

这是我的无知,很明显,当媒体录音机运行时,你不能让人脸检测运行,所以当你同时用摄像机记录时,男人不会尝试运行人脸检测。

如果您真的想在记录时检测面孔,那么您应该使用

代码语言:javascript
复制
onPreviewFrame(byte[] pixelData, Camera camera)

方法中

代码语言:javascript
复制
Camera.PreviewCallback()

将pixelData转换为RGB_565位图并将其提供给FaceDetector.findfaces方法。但在我的经验中,我发现这种方法非常不可靠。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31943358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档