OpenCV on Raspberry Pi - Using Java(3)- 在 Mac OS 安裝與測試 OpenCV by Michael | CodeData
top

OpenCV on Raspberry Pi - Using Java(3)- 在 Mac OS 安裝與測試 OpenCV

分享:

OpenCV on Raspberry Pi – Using Java(2)- 在 Windows 安裝與測試 OpenCV << 前情

下載與安裝 OpenCV

  1. 啟動瀏覽器,開啟http://opencv.org/downloads.html
  2. 選擇「Version 3.1」的「OpenCV for Linux/Mac」,儲存下載的檔案:

    OpenCVJava_03_001

  3. 解壓縮上一個步驟下載的壓縮檔。

  4. 啟動瀏覽器,開啟https://cmake.org/download/

  5. 選擇「Mac OSX 10.6 or later」的「cmake-3.6.0-rc1-Darwin-x86_64.dmg」:

    OpenCVJava_03_002

  6. 開啟下載的檔案,執行安裝「CMake」。

  7. 啟動瀏覽器,開啟http://ant.apache.org/bindownload.cgi

  8. 選擇「apache-ant-1.9.7-bin.zip」,儲存下載的檔案:

    OpenCVJava_03_003

  9. 解壓縮上一個步驟下載的壓縮檔。

建立 OpenCV 程式庫

  1. 確認下列的資訊:
    • APACHE_ANT_DIR:Apache ANT解壓縮的檔案夾,例如「/Users/MichaelChang/work/apache-ant-1.9.7」。
    • JDK_DIR:Java JDK檔案夾,例如「/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home」。
    • OpenCV_DIR: OpenCV解壓縮的檔案夾,例如「/Users/MichaelChang/opencv-3.1.0」。
  2. 啟動終端機應用程式,執行下列的指令:

    cd OpenCV解壓縮的檔案夾/opencv-3.1.0
    mkdir build
    cd build
  3. 執行下面的指令,把APACHE_ANT_DIR與JDK_DIR替換成實際的檔案夾。這是一個單一個指令,內容很長,建議先把內容複製到文字編輯應用程式,修改完成後,在複製、貼到終端機執行:

    cmake -D ANT_EXECUTABLE=APACHE_ANT_DIR/bin/ant \
    -D BUILD_PERF_TESTS=OFF \
    -D BUILD_SHARED_LIBRARY=OFF \
    -D BUILD_TESTS=OFF \
    -D BUILD_opencv_python3=OFF \
    -D CMAKE_BUILD_TYPE=RELEASE \
    -D JAVA_AWT_INCLUDE_PATH=JDK_DIR/include \
    -D JAVA_AWT_LIBRARY=JDK_DIR/include/jawt.h \
    -D JAVA_INCLUDE_PATH=JDK_DIR/include \
    -D JAVA_INCLUDE_PATH2=JDK_DIR/include/darwin \
    -D JAVA_JVM_LIBRARY=JDK_DIR/include/jni.h ..
  4. 執行上面的指令以後,需要花費一些時間,最後看到這樣的畫面,表示已經完成工作:

    OpenCVJava_03_004

  5. 執行下列的指令建立OpenCV程式庫:

    make -j4
  6. 執行上面的指令以後,需要花費一些時間,最後看到這樣的畫面,表示已經完成工作:

    OpenCVJava_03_005

  7. 檢查下列的檔案:

    • OpenCV_DIR/build/bin/opencv-310.jar:OpenCV Java類別庫。
    • OpenCVDIR/build/lib/libopencvjava310.so:OpenCV Java執行時期程式庫。
  8. 執行下列的指令:

    cd OpenCV解壓縮的檔案夾/opencv-3.1.0/build/lib/
    ln -s libopencv_java310.so libopencv_java310.dylib

OpenCV 開發環境

  1. 下載與安裝Java SE 8 JDK
  2. 啟動瀏覽器,開啟https://netbeans.org/downloads/
  3. 選擇「Java SE」的「Download」圖示,儲存下載的檔案:

    OpenCVJava_03_006

  4. 執行下載的安裝程式,使用預設的設定安裝NetBeans。

  5. 啟動NetBeans後選擇功能表「File -> New Project」。

  6. 在「Categories」選擇「Java」,在「Project」選擇「Java Application」,最後選擇「Next」:

    OpenCVJava_03_007

  7. 在「Project」輸入「HelloOpenCV」,勾選「Create Main Class」後輸入「net.macdidi5.opencv.HelloOpenCV」,最後選擇「Finish」,NetBeans建立一個Java應用程式專案:

    OpenCVJava_03_008

  8. 現在準備在NetBeans建立OpenCV類別庫的設定。展開HelloOpenDV專案,在「Library」目錄按滑鼠右鍵,選擇「Add Library」,在「Add Library」視窗選擇「Create… 」:

    OpenCVJava_03_009

  9. 在「Library Name」輸入「OpenDV3Library」,選擇「OK」:

    OpenCVJava_03_010

  10. 選擇「Add JAR/Folder…」:

    OpenCVJava_03_011

  11. 選擇「OpenCV_DIR/build/bin/opencv-310.jar」後選擇「Add JAR/Folder」:

    OpenCVJava_03_012

  12. 選擇「OK」建立NetBeans類別庫設定:

    OpenCVJava_03_013

  13. 選擇建立好的類別庫設定「OpenDV3Library」,再選擇「Add Library」,後續新的OpenCV專案加入這個建立好的類別庫設定就可以了:

    OpenCVJava_03_014

  14. 在專案目錄上按滑鼠右鍵後選擇「Properties」。

  15. 在「Categories」選擇「Run」,在「VM Options」輸入下列內容(「OpenCV檔案夾」要替換成實際的檔案夾位置):

    -Djava.library.path=OpenCV檔案夾/opencv-3.1.0/build/lib        

    最後選擇「OK」:

    OpenCVJava_03_015

後續的專案都要執行上列13到15的步驟,加入需要的OpenCV類別庫與執行時期設定。

第一個 OpenCV 應用程式

在NetBeans開啟HelloOpenCV專案的「HelloOpenCV.java」,修改為下面的內容:

package net.macdidi5.opencv;

import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;

public class HelloOpenCV {

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

}

在HelloOpenCV專案目錄上按滑鼠右鍵選擇「Run」,如果執行後顯示下面的內容,表示已經正確設定OpenCV開發與執行環境:

    mat = [  1,   0,   0;
       0,   1,   0;
       0,   0,   1]    

下一步

完成OpenCV在Windows開發環境的設定以後,你可以略過Mac OS的說明,準備建立OpenCV在Raspberry Pi的執行環境。

後續 >> OpenCV on Raspberry Pi – Using Java(4)- 在 Raspberry Pi 安裝與測試 OpenCV

分享:
按讚!加入 CodeData Facebook 粉絲群

留言

留言請先。還沒帳號註冊也可以使用FacebookGoogle+登錄留言

關於作者

張益裕。目前的工作是講師與作者,專長是教育訓練課程規劃、教材編製與課程推廣,技術書籍與專欄寫作。涵蓋的領域有OOAD、Java程式設計、JavaFX、Java Embedded、Android與SQL。已出版電子書Google Play圖書Pubu

熱門論壇文章

熱門技術文章