当前位置:   article > 正文

JavaCV精简依赖包:如何只依赖本地平台所需的最小依赖包_javacv依赖

javacv依赖
  1. 返回音视频合集总目录:
    JavaCV音视频合集汇总目录
  2. 返回图像处理合集总目录:
    JavaCV图像处理合集汇总目录

由于javacv跨平台,那么全部javacv依赖包下载下来后,整个javacv的包会特别巨大,接近1G。显然很多平台依赖包我们并不需要,而且我们开发时只需要自己本身开发平台的依赖包就可以了,所以我们以windows x86_64平台下的ffmpeg和opencv为例,来讲讲如何精简依赖包,其他平台可以参照本文章进行修改。

前言

在教程案例中,为了防止出错,我们使用了JavaCV全量包:

<!-- 全量包-->
   <dependency>
		<groupId>org.bytedeco</groupId>
		<artifactId>javacv-platform</artifactId>
		<version>1.5.5</version>
	</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

但是这个包太大,我们需要精简,由于每个依赖有依赖其他包的情况,所以精简也不是随便精简的,博主已经遇到过很多自行精简遇到问题的小伙伴,在这里建议如果不熟悉javacv结构可以去看看博主的javacv入门教程。

对于还没上手的小伙伴们,建议刚开始还是使用全量包开发,这样可以减少出错概率。而如果自行精简依赖包导致出问题的,也不要急着找博主,先把依赖替换成全量包之后再试。

javacv核心依赖包(基础库,必须)

如果要使用javacv调用任何其他native库,都必须要javacv核心库,核心库包含两个依赖:
以maven的pom.xml为例,设置javacv版本号和所属平台架构名称

 <properties>
    <javacv.version>1.5.5</javacv.version>
    <system.windowsx64>windows-x86_64</system.windowsx64>
  </properties>
  • 1
  • 2
  • 3
  • 4

就是 javacv+javacpp核心最小精简依赖,包含javacv封装库和javacpp跨平台本地接口映射库:

    <dependency>
		<groupId>org.bytedeco</groupId>
		<artifactId>javacv</artifactId>
		<version>${javacv.version}</version>
    </dependency>
    <dependency>
		<groupId>org.bytedeco</groupId>
		<artifactId>javacpp-platform</artifactId>
		<version>${javacv.version}</version>
    </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

ffmpeg最小依赖

这里的ffmpeg最小依赖包,只包含一个平台架构包

<!-- javacv+javacpp核心库-->
   <dependency>
  	<groupId>org.bytedeco</groupId>
  	<artifactId>javacv</artifactId>
  	<version>${javacv.version}</version>
  </dependency>
  <dependency>
  	<groupId>org.bytedeco</groupId>
  	<artifactId>javacpp-platform</artifactId>
  	<version>${javacv.version}</version>
  </dependency>
 <!-- ffmpeg最小依赖包,必须包含上面的javacv+javacpp核心库 -->
	 <dependency>
  	<groupId>org.bytedeco</groupId>
		<artifactId>ffmpeg</artifactId>
		<version>4.3.2-${javacv.version}</version>
		<classifier>${system.windowsx64}</classifier>
	 </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

opencv最小依赖

opencv依赖项比较复杂,它本身依赖了很多外部包,甚至在视频采集和编解码这块需要依赖ffmpeg,由于opencv一般用途只在图像处理识别这块,所以这里我们写的opencv最小依赖包是只包含采集摄像头图像、图像处理和图像识别所需包。

  <!-- javacv+javacpp核心库-->
   <dependency>
  	<groupId>org.bytedeco</groupId>
  	<artifactId>javacv</artifactId>
  	<version>${javacv.version}</version>
  </dependency>
  <dependency>
  	<groupId>org.bytedeco</groupId>
  	<artifactId>javacpp-platform</artifactId>
  	<version>${javacv.version}</version>
  </dependency>
<!-- 最小opencv依赖包 ,必须包含上面的javacv+javacpp -->
   <dependency>
    	<groupId>org.bytedeco</groupId> 
    	<artifactId>opencv</artifactId>
    	<version>4.5.1-${javacv.version}</version>
    	<classifier>${system.windowsx64}</classifier>
   </dependency>
    <dependency>
    	<groupId>org.bytedeco</groupId>
    	<artifactId>openblas</artifactId>
    	<version>0.3.13-${javacv.version}</version>
    	<classifier>${system.windowsx64}</classifier>
   </dependency>
   <dependency>
    	<groupId>org.bytedeco</groupId>
    	<artifactId>flycapture</artifactId>
    	<version>2.13.3.31-${javacv.version}</version>
    	<classifier>${system.windowsx64}</classifier>
   </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

如果觉得博主写得不错,欢迎“关注、 点赞、收藏”一键三连。


  1. 返回音视频合集总目录:
    JavaCV音视频合集汇总目录
  2. 返回图像处理合集总目录:
    JavaCV图像处理合集汇总目录
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/623296
推荐阅读
相关标签
  

闽ICP备14008679号