文档章节

opencv3.2.0在Mac上面编译成jar

亚林瓜子
 亚林瓜子
发布于 2018/07/18 17:31
字数 822
阅读 74
收藏 1

网上查了一堆的资料,发现大家主要有三种方式在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

© 著作权归作者所有

亚林瓜子

亚林瓜子

粉丝 22
博文 253
码字总数 87144
作品 0
长沙
高级程序员
私信 提问
OpenCV3.2.0+opencv_contrib-3.2.0+VS2015+cmake

这篇文章是安装OpenCV3.2.0的扩展库opencv_contrib-3.2.0的介绍。 一、先说使用的配置环境及准备工作: 1.OpenCV-3.2.0-vc14 2.opencvcontrib-3.2.0下载:https://github.com/opencv/opencvc...

Joe科技
2017/04/19
0
0
WIN10下VS2013+OpenCV3.2.0+OpenCV_contrib3.2.0编译过程记录

目录 前言 前面一直使用camshift做跟踪,但是camshift实际使用的效果并不怎么好。随着对OpenCV稍微了解了一点点之后,看到这篇博客[同时看到这篇博客自适应三特征融合之Camshift目标跟踪——...

simonforfuture
2017/12/28
0
0
OpenCV 实践——人脸检测与人脸图像提取

人脸对比是现在比较常用的功能,比如出租车司机人脸与司机驾照照片对比,门禁系统中进入者的人脸与人脸库中的人脸进行对比。要实现人脸对比,首先要实现的是人脸检测,在摄像头拍摄到的一张图...

li_wen01
2017/10/27
0
0
mac apktool配置

Apktool:http://ibotpeaches.github.io/Apktool/install/ 最新版本2.0.1 dex2jar: https://github.com/pxb1988/dex2jar 最新版本2.0 JD-GUI: http://jd.benow.ca/ 最新版本1.4.0 这三个软件......

wei-spring
2015/09/23
0
0
APK的反编译工具,Apktool,Dex2jar,JD-GUI等使用

http://blog.csdn.net/lostinai/article/details/44201971 http://blog.csdn.net/stayfoolishone/article/details/41659723 http://blog.163.com/ppy2790@126/blog/static/10324224120131122......

智能小松鼠
2015/04/22
4.1K
0

没有更多内容

加载失败,请刷新页面

加载更多

OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
5
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
6
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
昨天
6
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
7
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部