M1芯片Mac安装Opnecv+Java+Idea开发环境

3,219 阅读2分钟

本来有一台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的时候,发现了官网的部分信息:

image.png
过于年轻的我以为只需要brew install opencv --with-java这样的形式就可以了,但是弹出的信息如下图:

image.png
尝试使用brew info opencv后发现

image.png
并没有写明对应的参数.所以另辟蹊径,查阅brew的工作原理后brew edit opencv尝试查询支持JAVA的方式

image.png
拉到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文件了

image.png 编译部分大功告成!!!

IDEA配置

这一部分比较简单,首先对应的jar包是要饮用到自己的项目的,这个比较基础不多赘述了,关键在于在要启动的程序上要配置本地opencv库的地址

image.png 执行我一段简单的demo

image.png 结果如下

image.png
✌️