OpenCV 4.12.0
開源計算機視覺
載入中...
搜尋中...
無匹配項
將 OpenCV Java 與 Eclipse 一起使用

上一篇教程: Java 開發入門
下一篇教程: 使用 Clojure 進行 OpenCV 開發入門

原始作者Barış Evrim Demiröz
相容性OpenCV >= 3.0
警告
本教程可能包含過時的資訊。

自從 2.4.4 版本開始,OpenCV 支援 Java。在本教程中,我將解釋如何在 Windows 中設定使用 Eclipse 和 OpenCV Java 的開發環境,以便您可以享受垃圾回收、高度可重構(重新命名變數、提取方法等)的現代語言的優勢,使您能夠以更少的精力編寫程式碼並減少錯誤。讓我們開始吧。

配置 Eclipse

首先,從下載頁面獲取 OpenCV 的最新版本,並將其解壓縮到簡單的位置,例如 C:\OpenCV-2.4.6\。我使用的是 2.4.6 版本,但其他版本的步驟或多或少相同。

現在,我們將在 Eclipse 中將 OpenCV 定義為使用者庫,以便我們可以為任何專案重用該配置。啟動 Eclipse 並從選單中選擇“Window”->“Preferences”。

導航到“Java”->“Build Path”->“User Libraries”,然後單擊“New...”

輸入新庫的名稱,例如 OpenCV-2.4.6。

現在選擇您的新使用者庫,然後單擊“Add External JARs...”

瀏覽 C:\OpenCV-2.4.6\build\java\ 並選擇 opencv-246.jar。新增 jar 後,展開 opencv-246.jar 並選擇“Native library location”,然後按“Edit...”

選擇“External Folder...”並瀏覽以選擇資料夾 C:\OpenCV-2.4.6\build\java\x64。如果您有 32 位系統,則需要選擇 x86 資料夾而不是 x64。

您的使用者庫配置應如下所示

在新 Java 專案上測試配置

現在開始建立一個新的 Java 專案。

在 Java 設定步驟的“Libraries”選項卡下,選擇“Add Library...”並選擇 OpenCV-2.4.6,然後單擊“Finish”。

庫應如下所示

現在您已經建立並配置了一個新的 Java 專案,是時候進行測試了。建立一個新的 java 檔案。這是一個方便的入門程式碼

import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
public class Hello
{
public static void main( String[] args )
{
System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
Mat mat = Mat.eye( 3, 3, CvType.CV_8UC1 );
System.out.println( "mat = " + mat.dump() );
}
}
int main(int argc, char *argv[])
定義 highgui_qt.cpp:3

當您執行程式碼時,您應該看到 3x3 單位矩陣作為輸出。

就是這樣,每當您啟動一個新專案時,只需將您定義的 OpenCV 使用者庫新增到您的專案中即可。享受您強大、更輕鬆的開發環境:)

執行帶有 OpenCV 和 MKL 依賴項的 Java 程式碼

如果您使用 Intel MKL 構建了 OpenCV,並且使用了一些呼叫使用 Intel MKL 的 OpenCV 函式的 Java 程式碼,您可能會遇到以下錯誤(例如,在 Ubuntu 上)

‍Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.

解決 Linux 上此問題的一種方法是預載入 Intel MKL 庫(要麼在終端中執行該命令,要麼將其新增到您的 .bashrc 檔案中)。您的命令列應類似於以下內容(如果您已經設定了 LD_PRELOAD 變數,請在前面新增 $LD_PRELOAD:

‍export LD_PRELOAD=/opt/intel/mkl/lib/intel64/libmkl_core.so:/opt/intel/mkl/lib/intel64/libmkl_sequential.so

然後,從設定了此環境變數的終端執行 Eclipse IDE (echo $LD_PRELOAD),錯誤應該消失。