Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓-在自动对焦准备就绪后,如何拍摄相机预览帧?_Android_Android Camera - Fatal编程技术网

Android 安卓-在自动对焦准备就绪后,如何拍摄相机预览帧?

Android 安卓-在自动对焦准备就绪后,如何拍摄相机预览帧?,android,android-camera,Android,Android Camera,仅当camera.autoFocus(AutoFocusCallback回调)成功时,我才想捕获相机预览帧。我怎么做? 在自动对焦(布尔成功,摄像头)方法中是否有捕获帧的方法? 我想做的是这样的: public void butClick(View v){ preview.camera.autoFocus(new AutoFocusCallback() { public void onAutoFocus(boolean success, Camera camera) {

仅当
camera.autoFocus(AutoFocusCallback回调)
成功时,我才想捕获相机预览帧。我怎么做? 在自动对焦(布尔成功,摄像头)方法中是否有捕获帧的方法? 我想做的是这样的:

public void butClick(View v){
    preview.camera.autoFocus(new AutoFocusCallback() {
        public void onAutoFocus(boolean success, Camera camera) {
            if(success){
                //capturing frame...
            }
        }
    });
请注意,我不想拍照片,只想捕捉一个帧,然后转换成一个Mat对象,这将由opencv处理。 任何样品都将不胜感激。多谢各位


}

我正在使用android.hardware.camera(已弃用,但我的项目需要它)进行帧抓取。为了抓取预览帧,需要将回调连接到摄影机预览回调。有关更多信息,请参阅

例:

camera.setPreviewCallback(新的PreviewCallback(){
预览帧上的公共无效(最终字节[]数据,最终摄影机){
//根据需要处理字节的内容
}
});

该帧由字节[]访问。您需要自行转换此文件。如果您需要将其解码为可视格式,我建议您查看一些提示

注意:对于显示的每个帧都会调用此回调。因此,您需要使用
camera.stopPreview()
或其他逻辑停止预览。因为camera.stopPreview()将停止向用户更新摄影机

处理相机帧数据是一个棘手的设置,但一旦你得到它的工作,它的强大。祝你好运,如果你需要更多的细节,请回复。

你无法同步地从相机中“抓取”一帧。但是延迟时间很短,帧将被聚焦。可以从onAutoFocus()回调调用