国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

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

發(fā)布時(shí)間:2021-07-17 21:51 來(lái)源:腳本之家 閱讀:0 作者:eguid_1 欄目: 編程語(yǔ)言 歡迎投稿:712375056

目錄

      前言

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

      重要:

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

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

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

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

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

      須知:

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

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

      依賴(lài)配置說(shuō)明

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

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

      1.使用maven添加依賴(lài)

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

      2.使用gradle添加依賴(lài)

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

      3.使用本地jar包方式

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

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

      jar包使用須知:

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

      2、蘋(píng)果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開(kāi)始,已經(jīng)不需要本地安裝opencv,直接通過(guò)引用opencv對應的系統平臺的引用包即可。

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

      獲取攝像頭視頻

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

      預覽本機攝像頭視頻圖像的簡(jiǎn)單實(shí)現(由于之前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;
       
      /**
       * 調用本地攝像頭窗口視頻
       * @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)端設備中攝像頭默認序號是0,不排除其他情況
          grabber.start();//開(kāi)始獲取攝像頭數據
       
          CanvasFrame canvas = new CanvasFrame("攝像頭預覽");//新建一個(gè)預覽窗口
          canvas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
          //窗口是否關(guān)閉
          while(canvas.isDisplayable()){
            /*獲取攝像頭圖像并在窗口中顯示,這里Frame frame=grabber.grab()得到是解碼后的視頻圖像*/
            canvas.showImage(grabber.grab());
          }
          grabber.close();//停止抓取
        }
      }

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

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

      免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

      7777色鬼XXXX欧美色妇| 少妇厨房愉情理9仑片视频| 久久精品人人做人人爽97| 在线视频网站www色| 中国精品少妇HD| 亚洲精品中文字幕无码AV|