我正在尝试使用 IntelliJ IDEA 12 在 Java 中开发 OpenCV 2.4.5 应用程序。我已按照此处网站上的 Eclipse 说明进行操作。
我遇到的问题是我可以将 jar 添加到我的库中,但我不知道如何将本地程序添加到我的类路径中。
我正在尝试使用 IntelliJ IDEA 12 在 Java 中开发 OpenCV 2.4.5 应用程序。我已按照此处网站上的 Eclipse 说明进行操作。
我遇到的问题是我可以将 jar 添加到我的库中,但我不知道如何将本地程序添加到我的类路径中。
为了在 Java 中使用本机库,您需要指定 java.library.path 系统属性,以便 JVM 知道在哪里查找它们。
在 IntelliJ 中,这可以在运行/调试配置 -> 应用程序 -> VM 选项中完成,输入:
-Djava.library.path=path/to/dll
提取到 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 文件
您现在可以开始使用 OpenCV 函数,首先键入
进口组织
一旦你输入句点 IntelliJ 应该删除一个选项列表,其中一个是
opencv
剩下的就看你了。
我认为自从之前的答案发布以来情况已经发生了一些变化,我现在已经尝试过(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 的文档总是一个好主意
首先通过以下命令通过 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());
这些答案都没有帮助我解决问题。我发现了这个: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.gradle
addcompile 'com.github.ctodobom:OpenCV-3.1.0-Android:-SNAPSHOT'
这有 github 网站以及用户名、repo 和第一个 repo。这会将其链接到您的应用程序中。-Edit- 此外,如果此方法实际上对您不起作用,就像对我一样,请尝试使用 JavaCV。当我第一次实现这个方法时,它似乎很有效,因为 IDE 正在读取所有函数都有效并且我不会收到任何错误。它正在阅读它,但在某些情况下没有导入它,它会按预期工作,但在某些情况下它不会。因此,它可以为您工作,但我最终选择了 JavaCV,在我看来它更容易使用。
为了运行任何使用 OpenCV 的程序,您需要确保 OpenCV 二进制文件在java.library.path
aka 上。环境变量'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
. 这有助于组织或维护您可能会更新的软件的库版本。