通过与Android OpenCV的框架读取视频帧 [英] Reading a video frame by frame with 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屋!