91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用javacv怎么調用本機攝像頭

發布時間:2021-05-09 18:15:26 來源:億速云 閱讀:261 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關使用javacv怎么調用本機攝像頭,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

Java的優點是什么

1. 簡單,只需理解基本的概念,就可以編寫適合于各種情況的應用程序;2. 面向對象;3. 分布性,Java是面向網絡的語言;4. 魯棒性,java提供自動垃圾收集來進行內存管理,防止程序員在管理內存時容易產生的錯誤。;5. 安全性,用于網絡、分布環境下的Java必須防止病毒的入侵。6. 體系結構中立,只要安裝了Java運行時系統,就可在任意處理器上運行。7. 可移植性,Java可以方便地移植到網絡上的不同機器。8.解釋執行,Java解釋器直接對Java字節碼進行解釋執行。

前言

javacv開發包是用于支持java多媒體開發的一套開發包,可以適用于本地多媒體(音視頻)調用以及音視頻,圖片等文件后期操作(圖片修改,音視頻解碼剪輯等等功能),這里只使用最簡單的本地攝像頭調用來演示一下javacv的基礎功能

重要:

建議使用最新javaCV1.5版本,該版本已解決更早版本中已發現的大部分bug

javacv系列文章使用6個jar包:

javacv.jar,javacpp.jar,ffmpeg.jar,ffmpeg-系統平臺.jar,opencv.jar,opencv-系統平臺.jar。

其中ffmpeg-系統平臺.jar,opencv-系統平臺.jar中的系統平臺根據開發環境或者測試部署環境自行更改為對應的jar包,比如windows7 64位系統替換為ffmpeg-x86-x64.jar

為什么要這樣做:因為ffmpeg-系統平臺.jar中存放的是c/c++本地so/dll庫,而ffmpeg.jar就是使用javacpp封裝的對應本地庫java接口的實現,而javacpp就是基于jni的一個功能性封裝包,方便實現jni,javacv.jar就是對9個視覺庫進行了二次封裝,但是實現的功能有限,所以建議新手先熟悉openCV和ffmpeg這兩個C/C++庫的API后再來看javaCV思路就會很清晰了。

須知:

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

javacv官方github維護地址:https://github.com/bytedeco/javacv

依賴配置說明

(注意:從其他地方下載的依賴包請積極開心的替換為官方jar包和博主提供jar包;如果使用其他jar包版本而導致出錯,不要急著找博主問為啥會報錯,先把jar包替換了再試試看)

maven和gradle方式如果想要減小依賴包大小,則需要手動進行排除不需要的平臺依賴即可

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包方式

最新版實在太大,需要下載全量包的請到官方github.com/bytedeco/javacv下載

建議使用maven或gradle方式構建項目。

jar包使用須知:

1、windows x64平臺用到的opencv依賴:opencv.jar;oepncv-windows-x86_64.jar(其他平臺替換為對應的jar包即可)

2、蘋果mac需要opencv-macosx-x86_64.jar
3、linux平臺需要:opencv-linux-x86_64.jar  

4、安卓平臺arm架構的需要opencv-android-arm.jar ,基于x86的需要opencv-android-x86.jar

為什么不需要安裝opencv?

從javacv0.8開始,已經不需要本地安裝opencv,直接通過引用opencv對應的系統平臺的引用包即可。

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

獲取攝像頭視頻

最終調用的攝像頭實時視頻圖像界面:

使用javacv怎么調用本機攝像頭

預覽本機攝像頭視頻圖像的簡單實現(由于之前csdn的注釋被屏蔽,重新精簡優化了代碼):

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;
 

public class JavavcCameraTest{
  public static void main(String[] args) throws Exception, InterruptedException{
 
    OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);//新建opencv抓取器,一般的電腦和移動端設備中攝像頭默認序號是0,不排除其他情況
    grabber.start();//開始獲取攝像頭數據
 
    CanvasFrame canvas = new CanvasFrame("攝像頭預覽");//新建一個預覽窗口
    canvas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
    //窗口是否關閉
    while(canvas.isDisplayable()){
      /*獲取攝像頭圖像并在窗口中顯示,這里Frame frame=grabber.grab()得到是解碼后的視頻圖像*/
      canvas.showImage(grabber.grab());
    }
    grabber.close();//停止抓取
  }
}

以上就是使用javacv怎么調用本機攝像頭,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广河县| 黄石市| 驻马店市| 清苑县| 广宁县| 舞阳县| 嘉禾县| 田东县| 淮阳县| 六盘水市| 尼木县| 连云港市| 淄博市| 汨罗市| 县级市| 辛集市| 子长县| 凤阳县| 中宁县| 嵊州市| 巴东县| 社会| 乌鲁木齐县| 池州市| 新和县| 靖安县| 台南县| 北京市| 彭水| 尚义县| 辉南县| 盐边县| 伊川县| 鸡西市| 娄烦县| 银川市| 丹巴县| 德庆县| 泗阳县| 道真| 友谊县|