mac 借助intellij使用java进行基于opencv的开发
本文主要介绍,在MAC上,使用intellij进行java开发,其中涉及到了对opencv接口的调用。
首先,先啰嗦几句,大致的介绍下opencv:
opencv是一个开源的计算机视图的库,或者理解为,它就是用C++写的一个API,C++可以调它,python可以调用它,java也可以调用它。既然它只是一个库的话,那还有啥安装不安装的,运行不运行的,它本身就是不需要服务的。它就像是一本字典,就放在哪里,你使用它的时候,直接查看就是了。
那么安装的理论上的过程就是,下载源码,下载下来之后是需要编译,打包,然后将打的包提供出去(动态连接),供项目调用。
下面介绍下MAC上对于opencv的安装及java开发工具的调用
1、在终端执行命令,下载并安装opencv,借助brew,完成了流程图中的1,2,3步
$brew search opencv
$brew install opencv
命令执行完成之后,open安装的目录是
安装完之后,安装文件所在的位置:
/usr/local/opt/opencv
其java所有的jar包和动态连接的位置在:
/usr/local/opt/opencv/share/OpenCV/java
2、在项目中引入动态链接,将动态链接 *.pylib文件所在的目录作为参数,进行如下设置
将.dylib文件路径如图配置在VM option中即可.
路径结构:-Djava.library.path=/usr/local/opt/opencv/share/OpenCV/java
其中-Djava.library.path=为固定写法
尤其注意的一点是,.dll是window上动态连接的文件形式,在Mac上,其文件类型是:.dylib
3、将jar引入工程中
我这里创建的maven工程,所以我的做法是将jar包先添加到本地仓库
mvn install:install-file -Dfile=opencv-330.jar -DgroupId=dre.sjty -DartifactId=opencv -Dversion=3.3.6 -Dpackaging=jar
然后在相面的POM文件中引入刚刚的依赖:
<dependency>
<groupId>dre.sjty</groupId>
<artifactId>opencv</artifactId>
<version>3.3.6</version>
</dependency>
其中jar包通过添加外部添加jar包的形式
4、demo验证
编写测试方法如下,并在第二步添加了动态链接的应用上进行调用
private void test() {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat mat = Mat.eye(3, 3, CvType.CV_8UC1);
System.out.println("Mat " + mat.toString());
}
见到如下执行结果,说明成功:
如果见到如下执行结果,检查动态链接配置的目录下,是否存在*.lylib 文件
如果编译出错,检查jar是否成功导入本地maven仓库并成功引入到项目