我正在尝试使用IntelliJ IDEA 12在Java中开发OpenCV 2.4.5应用程序。我已经从here网站上按照Eclipse的说明进行操作。
我遇到的问题是我可以将jar添加到我的库中,但我不知道如何将本机添加到我的类路径中。
答案 0 :(得分:17)
为了在Java中使用本机库,您需要指定java.library.path系统属性,以便JVM知道在哪里查找它们。
在IntelliJ中,这可以在运行/调试配置中完成 - >申请 - > VM选项,输入:
-Djava.library.path=path/to/dll
答案 1 :(得分:10)
提取到OpenCV-2.4.5-android-sdk的地方,我的碰巧是
/home/anthony/Documents/OpenCV-2.4.5-android-sdk /
打开IntelliJ并选择导入
选择要导入的文件夹
/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功能,首先输入
import org。
键入句点后,IntelliJ应删除一个选项列表,其中一个是
的OpenCV
其余由你决定。
答案 2 :(得分:6)
我认为事情已经发生了变化,因为之前的答案已经发布了,我现在已经尝试过了(opencv 2.4.9)并想添加一些内容:
从头开始:
首先从您刚提取的open-cv文档“上方”的文件夹中从终端cmake -DBUILD_SHARED_LIBS=OFF opencv-2.4.9/
执行,然后执行make -j8
,这可能需要一段时间..
现在,在Intellij中转到File | Project Structure
,然后选择Global Libraries
,并添加位于opencv/bin
下的open-cv jar。
在这一点上,如果您尝试运行其中一个示例,您可能会得到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's documentation关于java和open-cv
总是一个好主意答案 3 :(得分: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。Environment setup 之后只需添加以下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());
答案 4 :(得分:0)
这些答案都没有帮助我解决问题。我发现这个:https://github.com/ctodobom/OpenCV-3.1.0-Android,到目前为止,它是android最简单的解决方案。
-编辑-
要使用它,您必须拥有所需的Github存储库,但步骤如下。
1.找到GitHub回购
2.将maven { url 'https://jitpack.io' }
添加到project/build.gradle
。
3.然后,在app/build.gradle
内添加compile 'com.github.ctodobom:OpenCV-3.1.0-Android:-SNAPSHOT'
这里有github网站以及用户名,回购邮件和回购邮件的第一个。这会将它链接到您的应用程序中。
-Edit-另外,如果这种方法对你来说并不像我那样实际工作,那么尝试使用JavaCV。当我第一次实现这个方法时,似乎它有效,因为IDE正在读取所有函数都是有效的,我不会得到任何错误。它正在阅读它,但不是在某些情况下导入,它会按预期工作,但有时它不会。因此,它可以为你工作,但我最终去了JavaCV,在我看来这更容易合作。
答案 5 :(得分:0)
为了运行任何利用OpenCV的程序,您需要确保OpenCV二进制文件也位于calc()
上。环境变量java.library.path
应该包含您的'Path'
文件的路径。每当Java运行外部库时,它都需要知道在哪里可以找到特定操作系统的二进制文件。就我而言,是Windows 10 x64:
opencv_java***.dll
请确保更改上面的目录以匹配您的目录。确保您为操作系统使用了正确的二进制文件。
如果您要严格查找依赖项管理,请转至OpenCV文件夹并在程序目录中找到D:\software\opencv\build\java\x64\opencv_java420.dll
文件:
opencv-***.jar
我们需要将此jar文件添加为Gradle中的依赖项,因此在您的D:\software\opencv\build\java\opencv-420.jar
文件中,将以下内容添加到您的依赖项中:
build.gradle
请确保更改上面的目录名称以匹配您的目录名称。
您还可以将依赖项保留在项目目录中,在项目根目录中创建一个compile fileTree(dir: 'D:\\software\\opencv\\build\\java\\', includes: ['*jar'])
文件夹,并将上述目录更改为'libs'
。这对于组织或维护您可能会更新的软件的库版本很有帮助。