JavaCV将视频帧传递给imread()

时间:2017-12-06 18:03:24

标签: java opencv video ffmpeg javacv

我尝试使用JavaCV进行模板匹配。演示示例位于 here 。我将所有.jar个文件添加到项目中。我需要将视频帧(比如video.mp4的最后一帧)传递给imread(),而不是从文件中读取源图像。我怎么能这样做?

String [] arg={"laff.png","template.png"};
FrameGrabber grabber = new FFmpegFrameGrabber("video.mp4");
System.out.println(grabber.getFrameRate());    //returns 0???

// read in image default colors
Mat sourceColor = imread(args[0]);   // pass last frame of video.mp4 instead of args[0]

更新:我现在可以使用以下方式将[第一个]视频帧传递给imread()(关键点是调用start())。所以我完成了转换。现在我需要知道如何获取特定的帧号,比如最后一帧。

FFmpegFrameGrabber grabber = new FFmpegFrameGrabber("video.mp4");
grabber.start();
System.out.println(grabber.getLengthInTime());
OpenCVFrameConverter.ToMat converter = new OpenCVFrameConverter.ToMat();

0 个答案:

没有答案