自编译
失败很多次之后终于跑起来一个 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);
}
我执行了识别答题卡的代码示例 ,效果如下
后记
- java.library.path 配置的时候 一定直接到 dylib 和 jar
- 一定注意 jdk 版本 4.8.1只能用 java21了 之前用 java8编译一直报错
maven依赖
直接 maven依赖,可以用。省去了复杂的编译过程。
stackoverflow 参考地址 https://stackoverflow.com/a/65784365/14246311
java
<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