前言
mac m1 环境搭建 opencv 环境遇到的坑不少,特此记录
opencv 版本:4.5.5
踩坑安装
官网有详细教程但是版本却只有3.x
概括如下:
- 安装
ant
:brew install ant
- 修改
brew
中opencv
的配置:brew edit opencv
将-DBUILD_opencv_java=OFF
改成-DBUILD_opencv_java=ON
- 最终构建:
brew install --build-from-source opencv
最后构建也确实能成功,但是这个关键的{homebrew}/Cellar/opencv/3.x.x/share/OpenCV/java/
目录却没有
于是去看看构建日志
/Users/{user}/Library/Logs/Homebrew/opencv
cat 1.cmake
很神奇,竟然是disabled
,怪不得最后java没有构建
然后就是一顿百度操作,各种方法尝试终于。。
最终安装
-
m1 有个适配的 jdk
zulu-jdk
网上百度自行安装 -
修改上面
brew edit opencv
,加上如下
-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
官网说的那个配置参数可能是版本太旧问题,总之不行
还要修改cmake 命令
在每个cmake
,make
命令前加上 "arch" ,"-arm64"
然后在执行brew install --build-from-source opencv
再去看看日志就差不多了
代码测试
所需要的资源都在 /opt/homebrew/Cellar/opencv/4.5.5_1/share
在idea 中需要将jar包引入
System.load("/opt/homebrew/Cellar/opencv/4.5.5_1/share/java/opencv4/libopencv_java455.dylib");
Mat src = Imgcodecs.imread("demo.jpg", Imgcodecs.IMREAD_UNCHANGED);
HighGui.imshow("BigImg", src);
HighGui.waitKey();
如果没有问题看到弹窗展示图片就行