javacv模块依赖简化

1|0前言

JavaCV更新到1.5.x版本,依赖包也迎来了很大变化,体积也变大了不少。由于javacv跨平台,那么全部javacv依赖包下载下来后,整个javacv的包会特别巨大,接近1G.显然很多平台依赖包我们并不需要,而且我们开发时只需要自己本身开发平台的依赖包就可以了

JavaCV1.5.x和之前版本已经不兼容

1|1JavaCV模块依赖说明

1|01.5.x版本依赖及包路径说明

  1. 以ffmpeg举例,1.5.x开始包路径修改为:
    import org.bytedeco.ffmpeg.avcodec,
    import static org.bytedeco.ffmpeg.global.avcodec.;,
    import static org.bytedeco.ffmpeg.global.avformat.
    ;

  2. 以opencv举例,1.5.x开始包路径修改为:import org.bytedeco.opencv.opencv_core;
    import org.bytedeco.opencv.global.opencv_imgcodecs;
    import org.bytedeco.opencv.global.opencv_imgproc;

  3. 以tesseract举例,1.5.x开始包路径修改为:org.bytedeco.tesseract

  4. 以videoinput举例,1.5.x开始包路径修改为:org.bytedeco.videoinput

1|01.5.x版本依赖配置

1.5.x版本的maven依赖配置

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

2|0精简依赖包

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

<!-- 全量包--> <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>1.5.5</version> </dependency>

但是这个包太大,我们需要精简,由于每个依赖有依赖其他包的情况,所以精简也不是随便精简的

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

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

<properties> <javacv.version>1.5.5</javacv.version> <system.windowsx64>windows-x86_64</system.windowsx64> </properties>

就是 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>

2|2ffmpeg最小依赖

这里的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>

2|3opencv最小依赖

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>

__EOF__

本文作者😎
本文链接https://www.cnblogs.com/dongye95/p/18014353.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   dongye95  阅读(1220)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2021-02-13 面试题 - WEB UI自动化 - selenium
点击右上角即可分享
微信分享提示