使用OpenCV和JavaCV捕获具有间隔的帧
我已经开发了一个捕获帧的代码使用OpenCV和JavaCV捕获具有间隔的帧,java,opencv,capture,intervals,javacv,Java,Opencv,Capture,Intervals,Javacv,我已经开发了一个捕获帧的代码 OpenCVFrameGrabber grabber = new OpenCVFrameGrabber("D:/2.avi"); grabber.start(); IplImage frame = grabber.grab(); 在中,您希望捕获具有如下间隔的帧: 第一帧 第五帧 第10帧 第15帧 ..... ect 我怎么做?使用线程很好?简单:添加一个计数器变量以存储已捕获的帧数: public static void
OpenCVFrameGrabber grabber = new OpenCVFrameGrabber("D:/2.avi");
grabber.start();
IplImage frame = grabber.grab();
在中,您希望捕获具有如下间隔的帧:
第一帧
第五帧
第10帧
第15帧
..... ect
我怎么做?使用线程很好?简单:添加一个计数器变量以存储已捕获的帧数:
public static void main(String[] args)
{
FrameGrabber grabber = new OpenCVFrameGrabber("demo.avi");
if (grabber == null)
{
System.out.println("!!! Failed OpenCVFrameGrabber");
return;
}
cvNamedWindow("video_demo");
try
{
grabber.start();
IplImage frame = null;
int frame_counter = 1;
while (true)
{
frame = grabber.grab();
if (frame == null)
{
System.out.println("!!! Failed grab");
break;
}
if ((frame_counter % 5) == 0)
// do something pretty with frame 5, 10, 15, 20, 25, ...
cvShowImage("video_demo", frame);
int key = cvWaitKey(33);
if (key == 27)
{
break;
}
frame_counter++;
}
}
catch (Exception e)
{
System.out.println("!!! Exception");
}
}
Simple:添加一个计数器变量以存储已抓取的帧数:
public static void main(String[] args)
{
FrameGrabber grabber = new OpenCVFrameGrabber("demo.avi");
if (grabber == null)
{
System.out.println("!!! Failed OpenCVFrameGrabber");
return;
}
cvNamedWindow("video_demo");
try
{
grabber.start();
IplImage frame = null;
int frame_counter = 1;
while (true)
{
frame = grabber.grab();
if (frame == null)
{
System.out.println("!!! Failed grab");
break;
}
if ((frame_counter % 5) == 0)
// do something pretty with frame 5, 10, 15, 20, 25, ...
cvShowImage("video_demo", frame);
int key = cvWaitKey(33);
if (key == 27)
{
break;
}
frame_counter++;
}
}
catch (Exception e)
{
System.out.println("!!! Exception");
}
}
嗨,谢谢你的支持。。cvWaitKey在这里扮演什么角色。??考虑投票有帮助的答案。此外,您还可以单击答案旁边的复选框,将其选择为问题的正式答案。通过这样做,你将帮助像你这样的未来访客。嗨,谢谢你的支持。。cvWaitKey在这里扮演什么角色。??考虑投票有帮助的答案。此外,您还可以单击答案旁边的复选框,将其选择为问题的正式答案。通过这样做,您将帮助像您这样的未来访客。