opencv3.2.0在Mac上面编译成jar

原创
2018/07/18 17:31
阅读数 619

网上查了一堆的资料,发现大家主要有三种方式在Mac上面编译opencv的jar:

  • 使用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小知识:

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生成MAKEFILE

cmake -DBUILD_SHARED_LIBS=OFF ..

开始编译

make -j8

这里使用8个核进行编译,据说这样可以缩短编译时间。mac在活动监视器.app→菜单栏【窗口】→CPU使用率,就可以查看自己的mac有几个cpu核心了,更多请阅读OS X:在四核以上系统中,活动监视器会显示一个 CPU 使用图。 编译完成后可以在build文件下面发现如下文件:

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文件

使用maven编译(官方方法)

解压后在opecv-3.2.0的文件夹中找到platforms→maven→README.md文件,我主要是参考这里的方法进行编译的。

准备

需要配置:

  • $JAVA_HOME
  • $ANT_HOME
  • $MAKEFLAGS=-j8
  • 需要安装maven

maven编译

mvn clean install

###遇到一些问题:

找不到cmake-mave-plugin 3.4.1-b2-SNAPSHOT的maven插件的问题

找到platforms/maven/pom.xml文件,修改为如下:

<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

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部