【问题标题】:Using openCV java on mac with intellij在带有intellij的mac上使用openCV java
【发布时间】:2020-04-27 12:03:49
【问题描述】:

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

但是该指南要么已经过时,要么不是为使用 mac homebrew 安装的 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 代码,例如这段代码 sn-p:

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());
}

【问题讨论】:

    标签: java opencv intellij-idea jar homebrew


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2015-06-24
      • 2017-05-02
      • 2021-01-03
      • 1970-01-01
      • 1970-01-01
      • 2015-05-24
      • 2020-02-09
      • 2011-08-27
      • 1970-01-01
      相关资源
      最近更新 更多