天天看點

基于Java及IDEA配置OpenCV

準備

主要是基于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檔案,沒有是正常的)

基于Java及IDEA配置OpenCV

在opencv-411.jar上有右鍵選擇 “Add as Library”

單機菜單欄Run->Edit Configuration 彈出如下對話框

基于Java及IDEA配置OpenCV

在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);
    }
           

運作檢視結果

基于Java及IDEA配置OpenCV

運作成功。

如果.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檔案即可。