我尝试使用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();