1. 程式人生 > >mac環境下編譯Opencv4.0 以及在Processing中使用opencv4.0舉例

mac環境下編譯Opencv4.0 以及在Processing中使用opencv4.0舉例

一、環境

Mac OS Sierra 10.12.6

Processing 3.4  https://processing.org/download/

Opencv 4.0.0  https://opencv.org/releases.html

$ java -version
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)

$ ant -version
Apache Ant(TM) version 1.10.5 compiled on July 10 2018

$ python --version
Python 3.6.6 :: Anaconda, Inc.

$ cmake -version

cmake version 3.13.2

如果沒有安裝,則

brew install cmake 或者 brew upgrade cmake

brew install ant

 

二、下載opencv4.0.0

選擇 opencv4.0.0.zip 下載後解壓為 opencv4.0.0 資料夾。


三、下載opencv_contrib-4.0.0

選擇 opencv_contrib-4.0.0.zip 版本,與 opencv4.0.0 相對應。

https://github.com/opencv/opencv_contrib/releases

下載後,解壓成opencv_contrib-4.0.0資料夾,將opencv_contrib-4.0.0 複製到opencv4.0.0 資料夾內。

 

四、修改配置檔案

開啟 opencv4.0.4/opencv_contrib-4.0.0/modules/optflow/CMakeLists.txt ,在 python 前面加上 java

修改前:

set(the_description "Optical Flow Algorithms")
ocv_define_module(optflow opencv_core opencv_imgproc opencv_video opencv_ximgproc opencv_imgcodecs opencv_flann WRAP python)

修改後:

set(the_description "Optical Flow Algorithms")
ocv_define_module(optflow opencv_core opencv_imgproc opencv_video opencv_ximgproc opencv_imgcodecs opencv_flann WRAP java python)

五、建立build環境

在opencv4.0.0資料夾下建立build資料夾,並進入build

 

六、執行配置

$cd  opencv4.0.0/build

$ccmake ..

七、配置編譯項

ccmake執行後,彈出配置選單。

選單操作說明 >>

A、按上下箭頭選擇每一項;

B、回車 On/Off 切換開關

C、配置完成後,按字母 c 檢查配置;

 

主要關閉前兩頁的部分內容,我把前兩頁截圖,供參考。

如果配置正常,則選單會出現 g 的選項(見圖三)。

如果沒有出現 g 的選項,可能是因為環境不同,導致無法獲得配置需要的環境。

這時候,需要嘗試把一些 On 的配置項關閉。

(圖一)配置內容第一頁

 

(圖二)配置內容第二頁

 

(圖三)配置完成

8、編譯

配置完成後,編譯 

執行:

make -j5

 

9、編譯完成

在 opencv4.0.0/build/bin 路徑下,有 opencv-400.jar

在 opencv4.0.0/build/lib路徑下,有 libopencv_java400.dylib 以及其他 .a 的檔案

 

10、設定 Processing 使用 opencv4.0.0

開啟 Processing,建立一個新專案,並儲存為 helloOpencv4

 

11、在Processing 選單選擇 Sketch --> Show Sketch Folder

 

彈出的新資料夾視窗,就是當前專案所在路徑。在當前資料夾內建立 code 目錄,然後把opencv4.0.0/build/bin/opencv-400.jar和opencv4.0.0/build/lib/libopencv_java400.dylib 複製到code資料夾中。

 

12、在Processing中使用opencv4.0.0

測試程式碼如下:

import org.opencv.core.Core;

void setup(){
  size(640,400);
  println(Core.VERSION);
  println(Core.NATIVE_LIBRARY_NAME);
  System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}

void draw(){
  background(100,100,100);
}

 

執行後,彈出的視窗上什麼也沒有!

控制視窗會顯示  opencv的版本和 opencv_java400 的庫檔名稱。

 

如果有時間,把opencv4.0.0在Processing的例子寫一下。

《完》