準備
主要是基于windows作業系統下的,使用java1.8操作OpenCV。
這裡我的OpenCV使用的是4.1.1版本,其他版本同樣适用。
Eclipse配置OpenCV與IDEA操作起來大同小異。
首先必須已經安裝過了OpenCV
(沒有下載下傳OpenCV可以在這裡下載下傳
(https://opencv.org/releases/)
)
安裝不再贅述。
操作
首先建立一個java項目。
将OpenCV安裝路徑下:/build/java/opencv-411.jar 拷貝到java項目下。
不同版本的OpenCV的jar包名稱可能不同。
并在**/build/java/** 下選擇合适的位數的檔案夾,拷貝到java項目下。
依據JVM位數,而不是作業系統的位數
x86對應32位虛拟機
x64對應64位虛拟機
此時項目目錄結構如下:(FirstWork是自己建立的.java檔案,沒有是正常的)
在opencv-411.jar上有右鍵選擇 “Add as Library”
單機菜單欄Run->Edit Configuration 彈出如下對話框
在VM options中填寫:
-Djava.library.path=$PROJECT_DIR$\opencv\x86
即将項目的library path修改為 .dll檔案所在的目錄,最後一級目錄 \x86依據實際情況修改。
測試
任意建立.java檔案,粘貼如下代碼,必須保證有測試圖像并替換掉圖像加載路徑。
public static void main(String[] args){
//引入 .dll
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
//打開圖像檔案
Mat mat = Imgcodecs.imread("black.jpg",-1);
if(mat.empty()){
System.out.println("圖像不存在");
return ;
}
//顯示mat具體資訊
System.out.println(mat);
}
運作檢視結果
運作成功。
如果.dll位數與JVM位數不相同,則會報錯:
Exception in thread "main" java.lang.UnsatisfiedLinkError: F:\Anlish\IDEA\DigitalImageProcess\opencv\x86\opencv_java411.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform
替換為合适的.dll檔案即可。