本来有一台Mac mini 和一台Macbook Air,分别使用了两种方法安装的opencv环境,以下分享一下两个环境和方法。
编译opencv+java for M1 mac
自主下载的源码编译方式
这一部分主要参考于
barrettodexter.medium.com/setting-up-…
主要区别在于如果采用非ARM版本的JDK,在运行的时候会出现架构对应不上的错误,(having arm64, need x86,x64)类似字样,这可能是因为rossta2转译了你的非ARM版本JDK,建议前往
Java Download | Java 8, Java 11, Java 13 - Linux, Windows & macOS (azul.com)
下载你所需要的ARM版本JDK,并在IDEA中配置为项目对应的JDK
借用Homebrew安装的opencv
这里就不多介绍homebrew的安装过程了,但是在我安装的过程中,第一次我使用的是阿里云的源,发现无法下载的问题,后来切换回原始源就可以了
第一次打开brew中搜索opencv的时候,发现了官网的部分信息:
过于年轻的我以为只需要brew install opencv --with-java这样的形式就可以了,但是弹出的信息如下图:
尝试使用brew info opencv后发现
并没有写明对应的参数.所以另辟蹊径,查阅brew的工作原理后brew edit opencv尝试查询支持JAVA的方式
拉到cmake参数部分可发现默认是OFF,我们把它改成ON,并且在后面添加JAVA编译的参数
-DOPENCV_JAVA_TARGET_VERSION十分重要,第一次没设置,生成了对应当前最高版本的jar,导致不能使用
-DOPENCV_JAVA_TARGET_VERSION=1.8
-DJAVA_INCLUDE_PATH=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/include
-DJAVA_AWT_LIBRARY=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/libawt.dylib
-DJAVA_JVM_LIBRARY=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/jre/lib/libjvm.dylib
但是brew install opencv后发现opencv还是没有安装,是因为我们没有使用源码编译,使用brew install --build-from-source opencv运行,过程有点漫长,但是比我们自己使用cmake要舒适很多。
看到熟悉的🍺标志就代表成功了进入/opt/homebrew/Cellar/opencv/4.5.3_1/share/java/opencv4就可以看到dylib 和 jar文件了
编译部分大功告成!!!
IDEA配置
这一部分比较简单,首先对应的jar包是要饮用到自己的项目的,这个比较基础不多赘述了,关键在于在要启动的程序上要配置本地opencv库的地址
执行我一段简单的demo
结果如下
✌️