在IDEA和Android Studio中用Gradle构建javacv开发环境
JavaCV是什么
JavaCV是可以在java中使用OpenCV的一个库。OpenCV是一个跨平台的开源计算机视觉和机器学习软件库。白话就是一个处理图片和进行人工智能识别图片的一个软件库。应用领域有:
1、人机互动
2、物体识别
3、图像分割
4、人脸识别
5、动作识别
6、运动跟踪
7、机器人
8、运动分析
9、机器视觉
10、结构分析
11、汽车安全驾驶
具体内容请自行百度
javaCV的github官方网址:https://github.com/bytedeco/javacv
JavaCV官方推荐的Gradle自动引用方式
dependencies { implementation group: 'org.bytedeco', name: 'javacv-platform', version: '1.5.4' }
但这里有两个问题,
1、这个库会下载超过700MB的内容。
为什么会这么大?因为它要下载windows、android、ios、linux等各个平台的opencv的编译好的库文件,并且分为x86和x86_64多达8个jar,每个约20MB。并且还要下载几个相关的库,象FFmpeg、Tesseract等多个库的文件,并且每个库文件同样分为8个jar。还要下载许多依赖的jar。所以就很大。
2、下载会很慢
因为下载的网站在国外。这里有一个改进的方法,就是在gradle中把下载的源改为阿里云。改法如下:
repositories { maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' } mavenCentral() }
经过修改后,速度快多了。大约能达到600kb/s,但这仍让我下载了超过半个小时。
JavaCV最小依赖
如果我们减少引用的库,那么下载速度就会很快,生成的项目也会小许多。我是从这里查到的。
compile group: 'org.bytedeco', name: 'javacv', version: '1.5.1' compile group: 'org.bytedeco', name: 'javacpp', version: '1.5.1' compile group: 'org.bytedeco', name: 'opencv', version: '4.1.0-1.5.1', classifier: 'windows-x86_64' compile group: 'org.bytedeco', name: 'openblas', version: '0.3.6-1.5.1', classifier: 'windows-x86_64'
这个最小依赖,只能用来处理图片,并且连BytePointer都不能用,更不要说用神经网络来识别图片。所以并不推荐使用。
推荐的引用javaCV方式
首先说明,这种方式并不能使用javaCV的最新版本,只能用在较老的版本上。只需要在buidl.gradle中加入下面的依赖就可以了:
implementation 'org.bytedeco:javacv:1.4.4' implementation group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '4.0.1-1.4.4', classifier: 'windows-x86_64'
如果是Android Studio,只需要改几个字母就可以了
implementation 'org.bytedeco:javacv:1.4.4' implementation group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '4.0.1-1.4.4', classifier: 'android-arm64'
这种方式打包出来的apk大约40MB,并且openCV的图片处理及神经网络功能齐全。