我试图通过1080P,120FPS视频的每个帧(总共大约30k帧)进行一些简单的轮廓检测。
然而,openCV's VideoCapture
需要很长时间才能从视频中读取每一帧(可能每秒15帧。但这需要太长时间才能通过30k帧,从视频中获取帧并将其转换为马特,然后我可以在那里做一些简历)。
我的阅读代码片段如下所示:
public ArrayList<Integer> findPostiveFrames(Rect roi){
ArrayList<Integer> postiveFrames = new ArrayList<Integer>();
currentVC.set(Videoio.CAP_PROP_FPS, 1000);
currentVC.set(Videoio.CV_CAP_PROP_BUFFERSIZE, 1000);
Mat mat = new Mat();
for (int i = 0; i < currentVC.get(Videoio.CAP_PROP_FRAME_COUNT); i++){
currentVC.read(mat);
Mat submat = mat.submat(roi);
System.out.println("i: " + i);
}
System.out.println("donezo");
return postiveFrames;
}