如何在IntelliJ IDEA 12中使用OpenCV

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

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

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

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

-Djava.library.path=path/to/dll 
  • 从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函数,首先输入

import组织。

一旦你输入了期限,IntelliJ就会删除一个选项列表,其中一个是

OpenCV的

现在,OpenCV已正确集成到IDE中

剩下的由你决定。

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

从一开始

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

现在,在Intellij中转到File | Project Structure 单击File | Project Structure ,选择Global Libraries ,并添加位于opencv/bin下的open-cv jar。

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

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

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

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