2012-02-03 84 views
0

我正在開發一個使用OpenCV封裝JavaCV的簡短應用程序。我試圖運行一個基本的例子,它在我的電腦上工作沒有任何問題。Runnable JavaCV項目

現在我遇到問題,當我嘗試在我的筆記本電腦上執行相同的程序。 OpenCV沒有安裝在那裏,但OpenCV二進制文件包含在我的jar文件中包含的JavaCV jar中。

所以我的問題是如果有機會創建一個可運行的jar文件,可以在未安裝OpenCV的任何Ubuntu或Windows系統上執行。

感謝和問候

安德烈亞斯

回答

2

是的,但考慮到Java和C++的侷限以及來自微軟許可問題,最簡單的辦法是你在一個巨大的JNI庫需要靜態的一切聯繫,每個平臺一個。這可以通過修改opencv_core.java文件頂部的目錄並將它們指向靜態庫以及使用JavaCPP的-o myMassiveJNIlib選項(請參閱JavaCV的build.xml文件內部)來完成。在你的應用程序中,只需在使用JavaCV之前調用System.load('path/to/myMassiveJNIlib')即可。在調用System.load()之前,我們還可以在JAR文件中包含的相關庫文件(可能使用基於Loader.getPlatformName()的文件名)上調用Loader.extractResource()將其解壓縮到臨時文件中。這是JavaCPP爲每個類自動執行的操作,當我們不需要將所有內容合併到一個大文件中時。

編輯:最新版本的JavaCPP和JavaCV可以從資源本地庫中提取和加載,如FaceApplet sample所示。不需要再亂用靜態庫了。