2017-06-29 104 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庫配置中的本機庫路徑來解決此問題。