mac OS 下搭建 JAVA OpenCV的開發環境

由於OpenCV 本身是通過C++開發的。如果要用JAVA進行開發,則需要通過JNI調用C++的庫纔可以實現。但是OpenCV官方只提供了windows環境下的dll庫,沒有提供mac OS 和Linux下面的庫。所以,如果想在Mac os 和linux下面進行開發,關鍵的一點就是需要編譯出本地的openCV庫。

目前網上有兩種方式來做這個事情,我嘗試了一下。 其中號稱利用port 自動安裝編譯的方式,沒有走通,不知道是在那個環節出了錯,而且似乎目前只支持3.X版本的openCV 所以嘗試了一下失敗之後,就沒有再試了。轉而使用官網提供的方法。 官網的編譯方法連接如下:

https://docs.opencv.org/4.1.1/d9/d52/tutorial_java_dev_intro.html

具體的步驟,不在贅述,只是寫一下遇到的幾個問題,以供參考。

首先,如官方文檔所說,要成功編譯,必須要安裝 Ant Python  JAVA cmake 這是必備的四個東西,缺少任何一個都會出問題。

其次,cmake -DBUILD_SHARED_LIBS=OFF .. 之後 一定要能在日誌中找到 to be built: 後面的組件列表中一定要有java 否則就需要仔細檢查環境。 由於make -j8操作很耗時,所以沒有確定環境具備之前,不要繼續做。以免浪費時間

第三,cmake的時候需要用到一個ippicv_2019_mac_intel64_20180723_general.tgz  這個文件下載非常緩慢,通常會因爲超時導致cmake失敗,所以解決辦法是,提前下載到本地,放到磁盤上,下載路徑是

https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_mac_intel64_general_20180723.tgz

下載完之後,修改 <opencv>/3rdparty/ippicv/ippicv.make文件,找到ocv_download(FILENAME ${OPENCV_ICV_NAME} 這一行,在這一行的下面會寫着 下載文件的路徑,手工修改路徑,將它改成本地文件所在的位置, 

修改後的結果如上圖所示. 這樣可以節省編譯是下載的時間,避免下載超時導致失敗.

第四,編譯的時候可能會遇到Could NOT find JNI 的錯誤提示,如果確定你的JAVA_HOME的環境變量沒有配錯的話,那麼就在顯示的配置一下JAVA_AWT_INCLUDE_PATH=$JAVA_HOME/include  這個環境變量就可以了(PS:每次重新執行cmake的時候最好刪除一下build目錄裏面的所有文件,有時候會出現新增加的環境變量不生效的問題)

目前遇到的問題就是這些,基本上解決之後就能順利編譯了.

對了,另外補充一下, 以目前的情況來說,java最好使用 JDK8  不要使用11.  在用port安裝的時候發生過部分組件認爲java11的版本低於java 1.3的問題, 而不進行編譯. 看來目前對JAVA11的全面支持還是有問題的, 這方面要注意一下.

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章