9

我正在尝试使用 IntelliJ IDEA 12 在 Java 中开发 OpenCV 2.4.5 应用程序。我已按照此处网站上的 Eclipse 说明进行操作。

我遇到的问题是我可以将 jar 添加到我的库中,但我不知道如何将本地程序添加到我的类路径中。

4

6 回答 6

18

为了在 Java 中使用本机库,您需要指定 java.library.path 系统属性,以便 JVM 知道在哪里查找它们。

在 IntelliJ 中,这可以在运行/调试配置 -> 应用程序 -> VM 选项中完成,输入:

-Djava.library.path=path/to/dll
于 2013-05-07T07:12:28.487 回答
10
  • 从OpenCV 站点下载 OpenCV-2.4.5-android-sdk.zip
  • 提取到 OpenCV-2.4.5-android-sdk 的位置,我的恰好是

    /home/anthony/Documents/OpenCV-2.4.5-android-sdk/

  • 打开 IntelliJ 并选择 Import

  • 选择要导入的文件夹

    /home/anthony/Documents/OpenCV-2.4.5-android-sdk/sdk/java/

     yours will be a little different, 
     don't worry, just chose where you 
     extracted OpenCV-2.4.5-android-sdk
    
  • 导入向导完成后,使用菜单构建应用程序

构建 -> 重建项目

  • 关闭项目

  • 创建新项目或打开现有项目
  • 然后

文件->导入模块

  • 这次选择

/home/anthony/Documents/OpenCV-2.4.5-android-sdk/sdk/java/XXX.iml

我的是 sdk.iml,但你的可以是任何东西,但只有一个

.iml 文件 选择iml文件导入模块

您现在可以开始使用 OpenCV 函数,首先键入

进口组织

一旦你输入句点 IntelliJ 应该删除一个选项列表,其中一个是

opencv

现在 OpenCV 已正确集成到您的 IDE 中

剩下的就看你了。

于 2013-06-28T15:29:30.967 回答
6

我认为自从之前的答案发布以来情况已经发生了一些变化,我现在已经尝试过(opencv 2.4.9)并想添加一些东西:

从一开始

cmake -DBUILD_SHARED_LIBS=OFF opencv-2.4.9/首先从您刚刚提取的 open-cv 文档“上方”文件夹中的终端执行,然后执行make -j8,这可能需要一段时间..

现在,在 Intellij 中File | Project Structure,选择Global Libraries,然后添加位于下的 open-cv jar opencv/bin

在那一点上,如果您尝试运行其中一个示例,您可能会得到类似Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java249 in java.library.path

接下来,正如上面建议的 dlx.folmead1,转到Run | Edit Configuration并添加到 VM 选项-Djava.library.path=/absolute-path-to/opencv/lib

当然,看看open-cv关于 java 和 open- cv 的文档总是一个好主意

于 2014-07-20T17:27:07.823 回答
1

首先通过以下命令通过 PowerShell 安装 Chocolatey

Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iwr https://community.chocolatey.org/install.ps1 -UseBasicParsing | iex

巧克力安装后

choco install opencv

上面的命令将安装可用的 opencv 最新版本

您需要手动创建一个 OPENCV_DIR 环境变量,然后将 %OPENCV_DIR%\bin 添加到您的 PATH 中。环境设置 之后,只需添加以下 Maven 依赖项

 <dependencies>
    <dependency>
        <groupId>org.openpnp</groupId>
        <artifactId>opencv</artifactId>
        <version>4.5.1-2</version>
    </dependency>
</dependencies>

然后添加这段代码;

 OpenCV.loadLocally();

并且繁荣它会起作用的笨拙的多莉!!!!

波纹管代码片段是为了测试。

 OpenCV.loadLocally();
    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());
于 2021-08-06T16:08:17.287 回答
0

这些答案都没有帮助我解决问题。我发现了这个:https ://github.com/ctodobom/OpenCV-3.1.0-Android ,它是迄今为止最简单的 android 解决方案。-edit- 要使用它,你必须有一个你想要的 Github 存储库,但步骤如下。1. 找到 GitHub 存储库 2. 添加maven { url 'https://jitpack.io' }project/build.gradle. 3. 然后,在你的app/build.gradleaddcompile 'com.github.ctodobom:OpenCV-3.1.0-Android:-SNAPSHOT'这有 github 网站以及用户名、repo 和第一个 repo。这会将其链接到您的应用程序中。-Edit- 此外,如果此方法实际上对您不起作用,就像对我一样,请尝试使用 JavaCV。当我第一次实现这个方法时,它似乎很有效,因为 IDE 正在读取所有函数都有效并且我不会收到任何错误。它正在阅读它,但在某些情况下没有导入它,它会按预期工作,但在某些情况下它不会。因此,它可以为您工作,但我最终选择了 JavaCV,在我看来它更容易使用。

于 2017-12-04T18:29:58.653 回答
0

为了运行任何使用 OpenCV 的程序,您需要确保 OpenCV 二进制文件在java.library.pathaka 上。环境变量'Path'应包含opencv_java***.dll文件的路径。每当 java 运行外部库时,它都需要知道在哪里可以找到特定操作系统的二进制文件。就我而言,Windows 10 x64:

D:\software\opencv\build\java\x64\opencv_java420.dll

确保更改上面的目录以匹配您的目录。确保为您的操作系统使用正确的二进制文件。

如果您正在严格寻找依赖管理,请转到您的 OpenCV 文件夹并opencv-***.jar在程序目录中找到该文件:

D:\software\opencv\build\java\opencv-420.jar

我们需要将此 jar 文件添加为 Gradle 中的依赖项,因此在您的build.gradle文件中将以下内容添加到您的依赖项中:

compile fileTree(dir: 'D:\\software\\opencv\\build\\java\\', includes: ['*jar'])

确保更改上面的目录名称以匹配您的。

您还可以将依赖项保留在项目目录中,'libs'在项目根目录中创建一个文件夹,并将上述目录更改为libs. 这有助于组织或维护您可能会更新的软件的库版本。

于 2020-03-27T23:12:35.130 回答