在带有intellij的mac上使用openCV-java



我正试图在我的java项目中使用openCV,因为它是一个单独的包,我需要使用jar文件添加它。我正试图按照本指南将其集成到intellij IDE中https://medium.com/@aadimator/如何设置-up-opencv-in-in-inintellij-idea-6eb103c1d45c

但该指南要么已经过时,要么不是为安装mac自制软件的openCV版本设计的。指南告诉我jar文件和本机库可以在opencv/build/java/下找到

但这看起来一点也不像我的目录结构。我能找到的最接近的东西是opencv/4.3.0/share/java

我试图将jar文件作为一个模块添加到我的intellij IDE中,但当我尝试运行一些测试openCV代码时,我得到了以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: 'long org.opencv.core.Mat.n_Mat(int, int, int, double, double, double, double)'
at org.opencv.core.Mat.n_Mat(Native Method)
at org.opencv.core.Mat.<init>(Mat.java:77)
at RGBParser.testOpenCV(RGBParser.java:42)
at RGBParser.makeSynopsis(RGBParser.java:260)
at Layout.<init>(Layout.java:94)
at Main.main(Main.java:3)

根据这个错误,我的猜测是我没有正确链接本地扩展,因为我根本没有添加jar文件,编译器抛出了一个不同的错误,说找不到包:

Error:(13, 23) java: package org.opencv.core does not exist

我的目标是能够运行使用openCV类的java代码,例如在以下代码片段中:

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.CvType;
import org.opencv.core.Scalar;
public static void testOpenCV() {
System.out.println("Welcome to OpenCV " + Core.VERSION);
Mat m = new Mat(5, 10, CvType.CV_8UC1, new Scalar(0));
System.out.println("OpenCV Mat: " + m);
Mat mr1 = m.row(1);
mr1.setTo(new Scalar(1));
Mat mc5 = m.col(5);
mc5.setTo(new Scalar(5));
System.out.println("OpenCV Mat data:n" + m.dump());
}

在我的测试代码中添加System.loadLibrary(Core.NATIVE_LIBRARY_NAME);解决了这个问题。

最新更新