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

javacv開(kāi)發(fā)詳解之調(diào)用本機(jī)攝像頭視頻

 更新時(shí)間:2021年04月22日 10:00:49   作者:eguid_1  
這篇文章主要介紹了javacv開(kāi)發(fā)詳解之調(diào)用本機(jī)攝像頭視頻,對(duì)javacv感興趣的同學(xué),可以參考下

前言

javacv開(kāi)發(fā)包是用于支持java多媒體開(kāi)發(fā)的一套開(kāi)發(fā)包,可以適用于本地多媒體(音視頻)調(diào)用以及音視頻,圖片等文件后期操作(圖片修改,音視頻解碼剪輯等等功能),這里只使用最簡(jiǎn)單的本地?cái)z像頭調(diào)用來(lái)演示一下javacv的基礎(chǔ)功能

重要:

建議使用最新javaCV1.5版本,該版本已解決更早版本中已發(fā)現(xiàn)的大部分bug

javacv系列文章使用6個(gè)jar包:

javacv.jar,javacpp.jar,ffmpeg.jar,ffmpeg-系統(tǒng)平臺(tái).jar,opencv.jar,opencv-系統(tǒng)平臺(tái).jar。

其中ffmpeg-系統(tǒng)平臺(tái).jar,opencv-系統(tǒng)平臺(tái).jar中的系統(tǒng)平臺(tái)根據(jù)開(kāi)發(fā)環(huán)境或者測(cè)試部署環(huán)境自行更改為對(duì)應(yīng)的jar包,比如windows7 64位系統(tǒng)替換為ffmpeg-x86-x64.jar

為什么要這樣做:因?yàn)閒fmpeg-系統(tǒng)平臺(tái).jar中存放的是c/c++本地so/dll庫(kù),而ffmpeg.jar就是使用javacpp封裝的對(duì)應(yīng)本地庫(kù)java接口的實(shí)現(xiàn),而javacpp就是基于jni的一個(gè)功能性封裝包,方便實(shí)現(xiàn)jni,javacv.jar就是對(duì)9個(gè)視覺(jué)庫(kù)進(jìn)行了二次封裝,但是實(shí)現(xiàn)的功能有限,所以建議新手先熟悉openCV和ffmpeg這兩個(gè)C/C++庫(kù)的API后再來(lái)看javaCV思路就會(huì)很清晰了。

須知:

javacv系列文章默認(rèn)音視頻處理使用ffmpeg,圖像處理使用opencv,攝像頭抓取使用opencv

javacv官方github維護(hù)地址:https://github.com/bytedeco/javacv

依賴配置說(shuō)明

(注意:從其他地方下載的依賴包請(qǐng)積極開(kāi)心的替換為官方j(luò)ar包和博主提供jar包;如果使用其他jar包版本而導(dǎo)致出錯(cuò),不要急著找博主問(wèn)為啥會(huì)報(bào)錯(cuò),先把jar包替換了再試試看)

maven和gradle方式如果想要減小依賴包大小,則需要手動(dòng)進(jìn)行排除不需要的平臺(tái)依賴即可

1.使用maven添加依賴

<dependency>
	<groupId>org.bytedeco</groupId>
	<artifactId>javacv-platform</artifactId>
	<version>1.4.4</version>
</dependency>

2.使用gradle添加依賴

dependencies {
    compile group: 'org.bytedeco', name: 'javacv-platform', version: '1.4.4'
  }

3.使用本地jar包方式

最新版實(shí)在太大,需要下載全量包的請(qǐng)到官方github.com/bytedeco/javacv下載

建議使用maven或gradle方式構(gòu)建項(xiàng)目。

jar包使用須知:

1、windows x64平臺(tái)用到的opencv依賴:opencv.jar;oepncv-windows-x86_64.jar(其他平臺(tái)替換為對(duì)應(yīng)的jar包即可)

2、蘋(píng)果mac需要opencv-macosx-x86_64.jar
3、linux平臺(tái)需要:opencv-linux-x86_64.jar  

4、安卓平臺(tái)arm架構(gòu)的需要opencv-android-arm.jar ,基于x86的需要opencv-android-x86.jar

為什么不需要安裝opencv?

從javacv0.8開(kāi)始,已經(jīng)不需要本地安裝opencv,直接通過(guò)引用opencv對(duì)應(yīng)的系統(tǒng)平臺(tái)的引用包即可。

(比如oepncv-windows-x86_64.jar就是典型的64位windows環(huán)境依賴包)

獲取攝像頭視頻

最終調(diào)用的攝像頭實(shí)時(shí)視頻圖像界面:

預(yù)覽本機(jī)攝像頭視頻圖像的簡(jiǎn)單實(shí)現(xiàn)(由于之前csdn的注釋被屏蔽,重新精簡(jiǎn)優(yōu)化了代碼):

package cc.eguid.javacv;
 
import javax.swing.JFrame;
 
import org.bytedeco.javacv.CanvasFrame;
import org.bytedeco.javacv.OpenCVFrameConverter;
import org.bytedeco.javacv.FrameGrabber.Exception;
import org.bytedeco.javacv.OpenCVFrameGrabber;
 
/**
 * 調(diào)用本地?cái)z像頭窗口視頻
 * @author eguid  
 * @date 2016年6月13日
 * @since  javacv1.2
 */
public class JavavcCameraTest{
  public static void main(String[] args) throws Exception, InterruptedException{
 
    OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);//新建opencv抓取器,一般的電腦和移動(dòng)端設(shè)備中攝像頭默認(rèn)序號(hào)是0,不排除其他情況
    grabber.start();//開(kāi)始獲取攝像頭數(shù)據(jù)
 
    CanvasFrame canvas = new CanvasFrame("攝像頭預(yù)覽");//新建一個(gè)預(yù)覽窗口
    canvas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
    //窗口是否關(guān)閉
    while(canvas.isDisplayable()){
      /*獲取攝像頭圖像并在窗口中顯示,這里Frame frame=grabber.grab()得到是解碼后的視頻圖像*/
      canvas.showImage(grabber.grab());
    }
    grabber.close();//停止抓取
  }
}

是不是很簡(jiǎn)單,原本很復(fù)雜的流媒體操作,javaCV能夠幫助我們快速實(shí)現(xiàn)。

以上就是javacv開(kāi)發(fā)詳解之調(diào)用本機(jī)攝像頭視頻的詳細(xì)內(nèi)容,更多關(guān)于javacv調(diào)用本機(jī)攝像頭的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 寶塔升級(jí)JDK版本超詳細(xì)圖文教程

    寶塔升級(jí)JDK版本超詳細(xì)圖文教程

    寶塔自動(dòng)安裝的JDK是一種用于開(kāi)發(fā)和運(yùn)行Java程序的軟件開(kāi)發(fā)工具包,下面這篇文章主要給大家介紹了關(guān)于寶塔升級(jí)JDK版本的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • java  基礎(chǔ)知識(shí)之IO總結(jié)

    java 基礎(chǔ)知識(shí)之IO總結(jié)

    這篇文章主要介紹了java 基礎(chǔ)知識(shí)之IO總結(jié)的相關(guān)資料,Java中的I/O分為兩種類(lèi)型,一種是順序讀取,一種是隨機(jī)讀取,需要的朋友可以參考下
    2017-03-03
  • Spring+Vue整合UEditor富文本實(shí)現(xiàn)圖片附件上傳的方法

    Spring+Vue整合UEditor富文本實(shí)現(xiàn)圖片附件上傳的方法

    這篇文章主要介紹了Spring+Vue整合UEditor富文本實(shí)現(xiàn)圖片附件上傳的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • java從字符串中提取數(shù)字的簡(jiǎn)單實(shí)例

    java從字符串中提取數(shù)字的簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)?lái)一篇java從字符串中提取數(shù)字的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-10-10
  • Java注解的Retention和RetentionPolicy實(shí)例分析

    Java注解的Retention和RetentionPolicy實(shí)例分析

    這篇文章主要介紹了Java注解的Retention和RetentionPolicy,結(jié)合實(shí)例形式分析了Java注解Retention和RetentionPolicy的基本功能及使用方法,需要的朋友可以參考下
    2019-09-09
  • IDEA Java win10環(huán)境配置的圖文教程

    IDEA Java win10環(huán)境配置的圖文教程

    這篇文章主要介紹了IDEA Java win10環(huán)境配置,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • java控制臺(tái)版實(shí)現(xiàn)五子棋游戲

    java控制臺(tái)版實(shí)現(xiàn)五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了java控制臺(tái)版實(shí)現(xiàn)五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • Java關(guān)于IO流的全面介紹

    Java關(guān)于IO流的全面介紹

    下面小編就為大家?guī)?lái)一篇Java關(guān)于IO流的全面介紹。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-08-08
  • Java String字符串和Unicode字符相互轉(zhuǎn)換代碼詳解

    Java String字符串和Unicode字符相互轉(zhuǎn)換代碼詳解

    這篇文章主要介紹了Java String字符串和Unicode字符相互轉(zhuǎn)換代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • idea啟動(dòng)多個(gè)服務(wù)不顯示Services或者RunDashboard窗口的處理方法

    idea啟動(dòng)多個(gè)服務(wù)不顯示Services或者RunDashboard窗口的處理方法

    這篇文章主要介紹了idea啟動(dòng)多個(gè)服務(wù)不顯示Services或者RunDashboard窗口,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03

最新評(píng)論