与Kotlin一起使用JavaCV

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

OpenCV项目库配置

和JavaCV:

JavaCV项目库配置

我有opencv之前javacv依赖。 为了测试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) } 

我们初始化grabber 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 

也许我在这里错过了一些东西,但是我已经遵循了JavaCV的Git仓库中的README.md提供的说明。 我还没有看到任何人试图使用这个库与StackOverflow的Kotlin,虽然已经检查了一些关于使用Java引发的相同异常的帖子。

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

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

例如,你可以像这样添加一个运行配置: 运行配置

其中${PATH_TO_DYNAMIC_LIB}是本地lib opencv_imgproc320.dll所在的位置 – 我想你的情况是C:/Users/ms/IdeaProjects/CVTest/opencv/build/java/x64

我可以通过将我的虚拟机选项留空并在JavaCV库配置中添加所有必需的OpenCV库作为本机库路径来解决此问题。