thu*_*usi 0 java opencv capture intervals javacv
我已经开发了一个捕获帧的代码
OpenCVFrameGrabber grabber = new OpenCVFrameGrabber("D:/2.avi");
grabber.start();
IplImage frame = grabber.grab();
Run Code Online (Sandbox Code Playgroud)
想要以第一帧第5帧第10帧第15帧等间隔捕捉帧
我该怎么做?使用线程是好的吗?
简单:添加一个计数器变量来存储您已经抓取的帧数:
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");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5377 次 |
| 最近记录: |