Использование openCV java на ma c с intellij - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь использовать openCV в своем проекте java, потому что это отдельный пакет, мне нужно добавить его, используя jar-файл. Я пытаюсь следовать этому руководству, чтобы интегрировать его в intellij IDE https://medium.com/@aadimator / как настроить opencv-in-intellij-idea-6eb103c1d45 c

Но руководство либо устарело, либо не предназначено для версии openCV, установленной с ma c homebrew. Руководство говорит мне, что файл 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

Моя цель - иметь возможность запустить java код, который использует классы openCV, например, в этом фрагменте кода:

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

1 Ответ

0 голосов
/ 28 апреля 2020

добавление System.loadLibrary(Core.NATIVE_LIBRARY_NAME); в мой тестовый код решило эту проблему.

...