java - 在 mac 上使用 openCV java 和 intellij

标签 java opencv intellij-idea jar homebrew

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

但是该指南要么已经过时,要么不是为与 mac homebrew 安装的 openCV 版本设计的。指南告诉我 jar 文件和 native 库可以在 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)

从这个错误中,我的猜测是我没有正确链接 native 扩展,因为我根本没有添加 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); 解决了这个问题。

关于java - 在 mac 上使用 openCV java 和 intellij,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61458475/

相关文章:

java - 有必要让这个变量变易变吗?

java - 在java中查找(hh mm ss)格式的平均时间

java - 更改 remoteView 按钮的背景图像?

iphone - 人脸类型检测

java - OSGI:如何找出哪些 bundle 订阅了我的服务引用字典中定义的特定属性?

python - 在 Python 中临时保存文件?

opencv - 使用FERNS进行目标检测

rest - 在 Intellij IDEA 中运行时,Grails 2.5.1 Restful Controller spock 单元测试失败并显示 406

android - 将Android Studio项目导入Intellij错误的gradle版本

maven - Intellij 想法 : view test coverage on a maven project