如何在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文件
您现在可以开始使用OpenCV函数,首先输入
import组织。
一旦你输入了期限,IntelliJ就会删除一个选项列表,其中一个是
OpenCV的
剩下的由你决定。
我认为事情已经发生了变化,因为之前的答案已经发布了,我现在已经尝试过了(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,在我看来这更容易合作。