opencv3.2.0在Mac上面編譯成jar

網上查了一堆的資料,發現你們主要有三種方式在Mac上面編譯opencv的jar:html

  • 使用brew編譯
  • 使用cmake手動編譯
  • 使用maven編譯(相似手動) brew編譯沒有成功,另外兩種都成功了。

brew編譯

檢查XCode Command Line Tools

xcode-select --install

homebrew安裝opencv3

brew tap homebrew/science
brew install opencv3 --HEAD --c++11 --with-ffmpeg --with-contrib --with-java

homebrew小知識:java

brew [un]tap <github_userid/repo_name> #添加或者刪除倉庫
brew info <formula>  #查看這個包的信息,從中咱們能夠得知有哪些選項可選。
#示例
brew install opencv3 --HEAD --c++11 --with-ffmpeg --with-contrib --with-java
brew --cache #獲取brew緩存路徑,將下載的文件放入緩存目錄;

最後brew編譯失敗放棄

手動cmake編譯

unzip opencv-3.2.0.zip
cd opencv-3.2.0
mkdir build
cd build

使用cmake生成MAKEFILEpython

cmake -DBUILD_SHARED_LIBS=OFF ..

開始編譯linux

make -j8

這裏使用8個核進行編譯,聽說這樣能夠縮短編譯時間。mac在活動監視器.app→菜單欄【窗口】→CPU使用率,就能夠查看本身的mac有幾個cpu核心了,更多請閱讀OS X:在四核以上系統中,活動監視器會顯示一個 CPU 使用圖。 編譯完成後能夠在build文件下面發現以下文件:c++

bin/opencv-3.2.0.jar
lib/libopencv_java320.so # linux環境生成的本地動態庫so文件
lib/libopencv_java320.dll # windows環境生成的本地動態庫dll文件
lib/libopencv_java320.dylib # mac環境生成的本地動態庫dylib文件

注意:如今是在mac環境下面編譯,故只生成了dylib文件git

使用maven編譯(官方方法)

解壓後在opecv-3.2.0的文件夾中找到platforms→maven→README.md文件,我主要是參考這裏的方法進行編譯的。github

準備

須要配置:shell

  • $JAVA_HOME
  • $ANT_HOME
  • $MAKEFLAGS=-j8
  • 須要安裝maven

maven編譯

mvn clean install

###遇到一些問題:windows

找不到cmake-mave-plugin 3.4.1-b2-SNAPSHOT的maven插件的問題

找到platforms/maven/pom.xml文件,修改成以下:xcode

<groupId>com.googlecode.cmake-maven-project</groupId>
<artifactId>cmake-maven-plugin</artifactId>
<version>3.4.1-b2</version>

Mac上面沒有安裝dpkg

brew install dpkg

maven檢查找不到cmake,git,ant等命令,我明明已經安裝了

找到上面的pom.xml文件,註解掉以下:

<!-- <argument>build-essential</argument>
<argument>cmake</argument>
<argument>git</argument>
<argument>libgtk2.0-dev</argument>
<argument>pkg-config</argument>
<argument>libavcodec-dev</argument>
<argument>libavformat-dev</argument>
<argument>libswscale-dev</argument>
<argument>python-dev</argument>
<argument>python-numpy</argument>
<argument>libtbb2</argument>
<argument>libtbb-dev</argument>
<argument>libjpeg-dev</argument>
<argument>libpng12-dev</argument>
<argument>libtiff5-dev</argument>
<argument>libjasper-dev</argument>
<argument>libdc1394-22-dev</argument>
<argument>ant</argument> -->

找不到libopencv_java320.so文件,可是編譯生成了libopencv_java320.dylib文件

建立libopencv_java320.so軟鏈接,鏈接到libopencv_java320.dylib文件上面去,找到目錄

cd build/lib/
ln -s libopencv_java320.dylib libopencv_java320.so
#再使用maven編譯,但不要clean了
mvn install

以上就是三種編譯opencv的方式,brew的方式我沒有成功,後面兩種我都成功編譯了。 Github上面我模仿作了一個事例代碼

參考: Introduction to Java Developmen Installing OpenCV for Java Day 12: OpenCV — Face Detection for Java Developers Core.rectangle returns can not resolve method error in openCv 3.0 HighGUI is missing from OpenCV 3.0.0 JAR

相關文章
相關標籤/搜索