package resa.evaluation.tools;
import org.bytedeco.javacpp.opencv_core;
import org.bytedeco.javacpp.opencv_highgui;
import static org.bytedeco.javacpp.opencv_core.cvSize;
import static org.bytedeco.javacpp.opencv_highgui.cvSaveImage;
import static org.bytedeco.javacpp.opencv_imgproc.cvResize;
/**
* Created by ding on 14/10/18.
*/
public class Video2Image {
public static void main(String[] args) {
opencv_highgui.VideoCapture capture = new opencv_highgui.VideoCapture(args[0]);
int i = 0;
opencv_core.IplImage img = null;
int max = Integer.parseInt(args[2]);
if (max <= 0) {
max = Integer.MAX_VALUE;
}
opencv_core.Mat mat = new opencv_core.Mat();
while (i++ < max && capture.read(mat)) {
opencv_core.IplImage source = mat.asIplImage();
if (img == null) {
opencv_core.CvSize size = cvSize(source.width() / 2, source.height() / 2);
img = opencv_core.IplImage.create(size, source.depth(), source.nChannels());
}
cvResize(source, img);
cvSaveImage(String.format(args[1] + "/%05d.jpg", i), img);
}
capture.release();
System.out.println("done, got " + i + " images");
}
}