JavaCV实现将视频以帧方式抽取
使用前:在用JavaCV实现以帧方式抽取视频的前,我们需要先从bytedeco/javacv下载第三方的压缩包,解压后按自己的需求往自己的IDE(*IDEA/Eclipse*)导入解压缩包下JAR文件;
接下来就以代码方式来说明如何利用Javacv来将视频以帧的方式抽取出来:
importorg.bytedeco.javacv.FFmpegFrameGrabber;
importorg.bytedeco.javacv.Frame;
importorg.bytedeco.javacv.Java2DFrameConverter;
importjavax.imageio.ImageIO;
importjava.awt.image.BufferedImage;
importjava.io.File;
importjava.io.IOException;
importstaticorg.bytedeco.javacpp.opencv_core.IplImage;
importstaticorg.bytedeco.javacpp.opencv_core.cvReleaseImage;
importstaticorg.bytedeco.javacpp.opencv_imgcodecs.cvLoadImage;
importstaticorg.bytedeco.javacpp.opencv_imgcodecs.cvSaveImage;
importstaticorg.bytedeco.javacpp.opencv_imgproc.cvSmooth;
publicclassJavaCV{
//theimage'spath;
finalstaticStringimagePath="/home/lance/abc.jpg/";
//thevedio'spathandfilename;
finalstaticStringvedioPath="/home/lance/target-a/";
finalstaticStringvedioName="origin-a.mp4";
publicstaticvoidmain(String[]args)throwsException{
smooth(imagePath);
grabberFFmpegImage(vedioPath+vedioName,vedioPath
,vedioName,30);
}
//themethodofcompressimage;
publicstaticvoidsmooth(StringfileName){
IplImageiplImage=cvLoadImage(fileName);
if(iplImage!=null){
cvSmooth(iplImage,iplImage);
cvSaveImage(fileName,iplImage);
cvReleaseImage(iplImage);
}
}
//grabffmpegImagefromvedio;
publicstaticvoidgrabberFFmpegImage(StringfilePath,StringfileTargetPath
,StringfileTargetName,intgrabSize)throwsException{
FFmpegFrameGrabberff=FFmpegFrameGrabber.createDefault(filePath);
ff.start();
for(inti=0;i
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。