通过与Android OpenCV的框架读取视频帧 [英] Reading a video frame by frame with Android OpenCv

查看:4785
本文介绍了通过与Android OpenCV的框架读取视频帧的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一组存储的文件夹在Android文件系统上的视频。
我想读一帧一帧的每一个,这样我可以对他们进行一些OpenCV函数,然后在一个位图显示它们。
我不知道如何正确地做到这一点,任何帮助将是AP preciated。

I have a set of videos stored in a folder on the android file system. I would like to read each frame by frame so that i can perform some OpenCv functions on them and then display them in a Bitmap. I'm not sure how to do this correctly, any help would be appreciated.

推荐答案

您可以看看的 Javacv

JavaCV首先提供包装在计算机视觉领域的常用库研究人员:OpenCV的,FFmpeg的,libdc1394,PGR FlyCapture,OpenKinect,videoInput和ARToolKitPlus

"JavaCV first provides wrappers to commonly used libraries by researchers in the field of computer vision: OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, videoInput, and ARToolKitPlus"

要通过帧中读出每帧你必须做类似下面

To read each frame by frame you'd have to do something like below

FrameGrabber videoGrabber = new FFmpegFrameGrabber(videoFilePath);

try 
{
    videoGrabber.setFormat("video format goes here");//mp4 for example
    videoGrabber.start();    
} catch (com.googlecode.javacv.FrameGrabber.Exception e) 
{           
    Log.e("javacv", "Failed to start grabber" + e);     
    return -1;  
}

Frame vFrame = null;

do
{
    try
    {
        vFrame = videoGrabber.grabFrame();
        if(vFrame != null)
            //do your magic here
    } catch (com.googlecode.javacv.FrameGrabber.Exception e) 
    {
        Log.e("javacv", "video grabFrame failed: "+ e);
    }
}while(vFrame != null);

try 
{
    videoGrabber.stop();
}catch (com.googlecode.javacv.FrameGrabber.Exception e) 
{
    Log.e("javacv", "failed to stop video grabber", e);
    return -1;
}

希望有所帮助。古德勒克

Hope that helps. Goodluck

这篇关于通过与Android OpenCV的框架读取视频帧的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆