2017-06-29 105 views
0

我目前正在尝试在Kotlin中使用JavaCV开始一个项目。我使用IntelliJ Idea作为我的IDE。我正在使用JavaCV 1.3.2和OpenCV 3.20。 这是我设置为模块的依赖关系为OpenCV的:与Kotlin一起使用JavaCV

OpenCV Project Library Configuration

和JavaCV:

JavaCV Project Library Configuration

我的依赖关系javacv之前有OpenCV的。 为了测试OpenCV是否存在并且有效,我写了下面的内容来测试。正如我可以loadLibrary和版本号显示正确,我可以假设OpenCV实际上工作。

import org.opencv.core.Core 
import org.opencv.core.Mat 
import org.opencv.core.CvType 
import org.opencv.core.Scalar 
import org.bytedeco.javacv.OpenCVFrameGrabber 

fun main(args : Array<String>) { 
    println("Test Built Successfully") 
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME) 
    println("Running OpenCV Version ${Core.VERSION}") 
    val grabber = OpenCVFrameGrabber(1) 
} 

我们初始化采集rasies下列异常行:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniopencv_core in java.library.path 
Caused by: java.lang.UnsatisfiedLinkError: no opencv_imgproc320 in java.library.path 

也许我在这里失去了一些东西,但我随后README.md在Git仓库所提供的说明JavaCV。我还没有看到有人试图在StackOverflow上使用Kotlin库,尽管已经检查了一些关于使用java引发的异常的帖子。

回答

0

处理这个错误在Kotlin和Java中没有什么不同;你需要为opencv指定本地库的路径。默认情况下,在Windows上,它会查找PATH环境变量中设置的任何本地库。

您还可以通过指定系统属性java.library.path(如错误消息所示)来明确指定要查找本机库的目录。

例如,您可以添加一个运行配置是这样的: run config

${PATH_TO_DYNAMIC_LIB}是在以往任何时候的本地库opencv_imgproc320.dll是 - 我认为你的情况这将是C:/Users/ms/IdeaProjects/CVTest/opencv/build/java/x64

+0

更改虚拟机选项中的库路径损坏了其他在intellij中配置的库,因为它们没有相同的库路径,并且如果指定了它,则会在配置时使用它来代替为库指定的路径。 –

0

我能够通过将我的VM选项留空并将所有必需的OpenCV库添加为我的JavaCV库配置中的本机库路径来解决此问题。