自编译

失败很多次之后终于跑起来一个 java+opencv 的demo。

过程

主要步骤如下:

编译需要 Apache Ant

brew install ant

需要告诉 opencv 需要 javabuild -DBUILD_opencv_java=ON

brew edit opencv

编辑这个我错了很多次 直接编辑完了它会默认下载未修改的opencv 配置
opencv.rb所以自己搞一个 下载的时候带上配置

brew install --build-from-source opencv yourpath/opencv.rb

下载后会看到 jar和 dylib 文件目录如下

代码执行的时候配置 java.library.path

执行加载 opencv库

static {System.out.println(System.getProperty("java.library.path"));System.loadLibrary(Core.NATIVE_LIBRARY_NAME);}

我执行了识别答题卡的代码示例 ,效果如下

后记

  1. java.library.path 配置的时候 一定直接到 dylib 和 jar
  2. 一定注意 jdk 版本 4.8.1只能用 java21了 之前用 java8编译一直报错

maven依赖

直接 maven依赖,可以用。省去了复杂的编译过程。

stackoverflow 参考地址 https://stackoverflow.com/a/65784365/14246311

<dependencies><!-- https://mvnrepository.com/artifact/org.openpnp/opencv --><dependency><groupId>org.openpnp</groupId><artifactId>opencv</artifactId><version>4.3.0-3</version></dependency></dependencies>

看了他的源码,判断系统后自动从 jar 里面引入动态链接库。确实太省心了。
参考 stackoverflow 参考地址 https://stackoverflow.com/a/65784365/14246311