繁体   English   中英

Android如何从相机中捕获两个连续帧

[英]Android How to capture two consecutive frames from camera

我正在尝试在Android设备上编程光流。 我的问题是从相机连续两帧。

这是获得一帧的代码。

mCamera.setPreviewCallback(new PreviewCallback() {
        public void onPreviewFrame(byte[] data, Camera camera) {
            synchronized (SampleViewBase.this) {
                mFrame2 = data;
                SampleViewBase.this.notify();
            }
        }
    });     

你不能这样做:

private byte[] currFrame;
private byte[] prevFrame;    

private void copyFrame(byte[] a){
        if(a != null) prevFrame = a;
}

mCamera.setPreviewCallback(new PreviewCallback() {
            public void onPreviewFrame(byte[] data, Camera camera) {
                synchronized (SampleViewBase.this) {
                    copyFrame(currFrame);              
                    currFrame = data;
                    SampleViewBase.this.notify();
                }
            }
        });  

我不确定这是正确的Java语法,只是在为其分配data之前复制currentFrame 无论如何,我认为你也可以使用VideoCapture类来获取Mat格式的帧。 我不确定这个类在最新版本中是否仍然可用,但根据我使用Opencv 2.3的经验,使用它来抓取相机帧比使用Android相机要快得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM