欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java使用OpenCV從視頻文件中獲取幀

 更新時間:2019年07月23日 17:21:27   作者:Fang20160214  
這篇文章主要為大家詳細介紹了java使用OpenCV從視頻文件中獲取幀,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java使用OpenCV從視頻文件中獲取幀的具體代碼,供大家參考,具體內(nèi)容如下

  • 實現(xiàn)功能:使用Java獲取mp4、mov、avi等視頻文件中的圖像幀,每秒獲取一幀圖像,并保存
  • 環(huán)境要求:需要安裝Opencv,安裝FFmpeg,下載javacv包
  • 操作系統(tǒng):本次實驗使用的Ubuntu系統(tǒng)

實驗代碼

import com.googlecode.javacv.cpp.opencv_highgui;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.Highgui;
import org.opencv.highgui.VideoCapture;
/**
* Created by fang on 17-4-6.
* 實現(xiàn)每播放一秒視頻就截取一張圖片保存到本地的操作
* 沒有使用ffmpeg,則只能讀取avi格式視頻
* 下載google javcv.jar
* sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
* sudo apt-get update
* sudo apt-get install ffmpeg
* /home/fang/BigDataSoft/opencv-2.4.13/3rdparty/ffmpeg中有opencv_ffmpeg_64.dll文件
* 不能解析視頻,提示moov atom not found 是文件有錯
*/
public class GetFrameFormVideo {
public static void main(String[] args) {
// System.out.println("Welcome to OpenCV " + Core.VERSION);
// System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// Mat m = Mat.eye(3, 3, CvType.CV_8UC1);
// System.out.println("m = " + m.dump());
//加載本地的OpenCV庫,這樣就可以用它來調(diào)用Java API
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
run2();
}
public static void run2() {
//讀取視頻文件
VideoCapture cap = new VideoCapture("/home/fang/Downloads/src_11.mp4");
System.out.println(cap.isOpened());
//判斷視頻是否打開
if (cap.isOpened()) {
//總幀數(shù)
double frameCount = cap.get(opencv_highgui.CV_CAP_PROP_FRAME_COUNT);
System.out.println("視頻總幀數(shù):"+frameCount);
//幀率
double fps = cap.get(opencv_highgui.CV_CAP_PROP_FPS);
System.out.println("視頻幀率"+fps);
//時間長度
double len = frameCount / fps;
System.out.println("視頻總時長:"+len);
Double d_s = new Double(len);
System.out.println(d_s.intValue());
Mat frame = new Mat();
for (int i = 0; i < d_s.intValue(); i++) {
//設(shè)置視頻的位置(單位:毫秒)
cap.set(opencv_highgui.CV_CAP_PROP_POS_MSEC, i * 1000);
//讀取下一幀畫面
if (cap.read(frame)) {
System.out.println("正在保存");
//保存畫面到本地目錄
Highgui.imwrite("/home/fang/images/" + i + ".jpg", frame);
}
}
//關(guān)閉視頻文件
cap.release();
}
}
}

出現(xiàn)的錯誤

解析Mp4文件時,出現(xiàn):moov atom not found
以為是ffmpeg沒有安裝正確,到網(wǎng)上找解決辦法,后來發(fā)現(xiàn)是自己的視頻文件有問題。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Java中clone的寫法

    詳解Java中clone的寫法

    這篇文章主要介紹了Java中clone的寫法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-07-07
  • SWT(JFace)Group(分組顯示)

    SWT(JFace)Group(分組顯示)

    SWT(JFace)體驗之Group(分組顯示)
    2009-06-06
  • Spring Boot2.X國際化文件編寫配置

    Spring Boot2.X國際化文件編寫配置

    這篇文章主要介紹了Spring Boot2.X國際化文件編寫配置,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • 關(guān)于jpa?querydsl嵌套查詢demo

    關(guān)于jpa?querydsl嵌套查詢demo

    這篇文章主要介紹了關(guān)于jpa?querydsl?嵌套查詢demo,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • ShardingSphere如何進行sql重寫示例詳解

    ShardingSphere如何進行sql重寫示例詳解

    這篇文章主要為大家介紹了ShardingSphere如何進行sql重寫示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Feign實現(xiàn)跨服務(wù)文件上傳下載

    Feign實現(xiàn)跨服務(wù)文件上傳下載

    這篇文章主要為大家詳細介紹了Feign實現(xiàn)跨服務(wù)文件上傳下載,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Java讀取Properties配置文件的6種方式匯總

    Java讀取Properties配置文件的6種方式匯總

    這篇文章主要給大家介紹了關(guān)于Java讀取Properties配置文件的6種方式,java中的properties文件是一種配置文件,主要用于表達配置信息,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • jstorm源碼解析之bolt異常處理方法

    jstorm源碼解析之bolt異常處理方法

    下面小編就為大家?guī)硪黄猨storm源碼解析之bolt異常處理方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Java中的遞歸詳解(用遞歸實現(xiàn)99乘法表來講解)

    Java中的遞歸詳解(用遞歸實現(xiàn)99乘法表來講解)

    這篇文章主要介紹了Java中的遞歸詳解(用遞歸實現(xiàn)99乘法表來講解),本文給出了普通的99乘法實現(xiàn)方法和用遞歸實現(xiàn)的方法,并對比它們的不同,體現(xiàn)出遞歸的運用及理解,需要的朋友可以參考下
    2015-03-03
  • Redis 集成Spring的示例代碼(spring-data-redis)

    Redis 集成Spring的示例代碼(spring-data-redis)

    本篇文章主要介紹了Redis 集成Spring的示例代碼(spring-data-redis) ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09

最新評論