gpt4 book ai didi

java - 使用 OpenCV 和 JavaCV 捕获具有间隔的帧

转载 作者:行者123 更新时间:2023-12-01 17:28:14 25 4
gpt4 key购买 nike

我已经开发了一个捕获帧的代码

    OpenCVFrameGrabber grabber = new OpenCVFrameGrabber("D:/2.avi");        
grabber.start();
IplImage frame = grabber.grab();

想要捕获具有间隔的帧,例如第一帧第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");
}
}

关于java - 使用 OpenCV 和 JavaCV 捕获具有间隔的帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13382886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com