我想仅在camera.autoFocus(AutoFocusCallback callback)
成功时捕获相机预览框。我该怎么做?
有没有办法在onAutoFocus(boolean success, Camera camera)
方法中捕获帧?
我想做的是这样的事情:
public void butClick(View v){
preview.camera.autoFocus(new AutoFocusCallback() {
public void onAutoFocus(boolean success, Camera camera) {
if(success){
//capturing frame...
}
}
});
请注意,我不想拍照,但只是捕获一个帧然后转换为Mat对象,这将由opencv处理。 任何样品都将非常感激。谢谢
}
答案 0 :(得分:0)
我正在使用android.hardware.camera(已弃用但我的项目需要)来进行帧抓取。为了获取预览帧,您需要将回调连接到相机预览回调。有关详细信息,请参阅Android CameraPreviewCallback。
前:
camera.setPreviewCallback(new PreviewCallback() {
public void onPreviewFrame(final byte[] data, final Camera camera) {
// Process the contents of byte for whatever you need
}
});
帧由字节[]访问。您需要自己转换它。如果您需要将其解码为可查看的格式,我建议您查看Decode YUV data以获取一些提示。
注意:为每个显示的帧调用此回调。因此,您需要使用camera.stopPreview()
或其他逻辑停止预览。由于camera.stopPreview()会阻止相机更新为用户。
处理相机框架数据很难设置,但一旦你使它工作,它的功能强大。 Goodluck如果您需要更多详细信息,请回复。
答案 1 :(得分:0)
你不能抓住"同步一帧相机。但延迟有望很短,框架将成为焦点。从onAutoFocus()回调中,您可以调用camera.setOneShotPreviewCallback()。