javaCV全系列文章匯總整理
前言
JavaCV更新到1.5.x版本,依賴包也迎來了很大變化,體積也變大了不少。
很多小伙伴們反饋,之前很多1.3.x和1.4.x版本的包路徑都找不到了,也就是說JavaCV1.5.x和之前版本已經不兼容了。 所以本章就單獨講講JavaCV各個依賴庫彼此之間的關系,當然還有面對越來越龐大的依賴包大小,本章還要再講講如如何精簡依賴包的大小,去除不需要的依賴項。
JavaCV模塊依賴說明
1.5.x版本依賴及包路徑說明
-
以ffmpeg舉例,1.5.x開始包路徑修改為:
import org.bytedeco.ffmpeg.avcodec,
import static org.bytedeco.ffmpeg.global.avcodec.*;,
import static org.bytedeco.ffmpeg.global.avformat.*; -
以opencv舉例,1.5.x開始包路徑修改為:import org.bytedeco.opencv.opencv_core;
import org.bytedeco.opencv.global.opencv_imgcodecs;
import org.bytedeco.opencv.global.opencv_imgproc; -
以tesseract舉例,1.5.x開始包路徑修改為:org.bytedeco.tesseract
-
以videoinput舉例,1.5.x開始包路徑修改為:org.bytedeco.videoinput
1.5.x版本依賴配置
- 1.5.x版本的maven依賴配置
<dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>1.5.4</version> </dependency>
- 1.5.x版本的gradle依賴配置
dependencies { compile group: 'org.bytedeco', name: 'javacv-platform', version: '1.5.4' }
1.3.x和1.4.x版本的模塊依賴
以ffmpeg舉例,1.3.x和1.4.x版本(1.5.x之前版本)的包路徑:
org.bytedeco.javacpp.avcodec.*;,
org.bytedeco.javacpp.avformat.*;
- maven依賴配置
<dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>1.4.4</version> </dependency>
- gradle依賴配置
dependencies { compile group: 'org.bytedeco', name: 'javacv-platform', version: '1.4.4' }
如何精簡JavaCV依賴項
例如下面這個配置,只需要基礎javacv、javacpp和ffmpeg,就不會依賴其他不需要的包了。
<!--javacv基礎包,包含javacv和javacpp,必須--> <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv</artifactId> <version>1.5.4</version> </dependency> <!-- ffmpeg,可選 --> <dependency> <groupId>org.bytedeco</groupId> <artifactId>ffmpeg-platform</artifactId> <version>4.3.1-1.5.4</version> </dependency>
只需要opencv,可以這樣配置:
<!--javacv基礎包,包含javacv和javacpp,必須--> <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv</artifactId> <version>1.5.4</version> </dependency> <!-- opencv,可選 --> <dependency> <groupId>org.bytedeco</groupId> <artifactId>opencv-platform</artifactId> <version>4.4.0-1.5.4</version> </dependency>
只引用javacv依賴,實際上包含javacv、javacpp和各個其他依賴庫的封裝層,不包含ffmpeg、opencv等系統環境的本地庫(native library):
<dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv</artifactId> <version>1.5.4</version> </dependency>
gradle方式參照maven方式類推。
—end—
支持eguid原創文章,歡迎“關注、點贊、收藏”三連。