Linux下安装并使用Java开发opencv的配置

Linux下安装并使用Java开发opencv的配置

转自:  http://developer.51cto.com/art/201503/469692.htm


今天花了四个小时, 终于在linux下把eclipse下java开发opencv给搞定了… 至于为什么花这么久的时间… 且听我慢慢讲…

作者: 来源:mx's Blog| 2015-03-26 10:47

inux编译安装opencv

首先, linux下安装opencv其实不麻烦的, 参考文档即可完成: http://docs.opencv.org/trunk/doc/tutorials/introduction/linux_install/linux_install.html

大致有以下几个步骤:

1) 安装gcc以及cmake等等乱七八糟的软件(不过ubuntu下默认差不多都有了吧…)

 
 
  1. sudo apt-get install build-essential python-dev cmake 

2) 下载opencv-2.4.8.zip并解压缩

3) 新建一个build文件夹

 
 
  1. cd ~/opencv 
  2. mkdir build 
  3. cd build 

4) 在终端里输入:

 
 
  1. cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..  
  2. make 
  3. sudo make install 

make命令会花费几十分钟时间… 然后理论上就结束了… 如果不用java开发的话 就OK了 比如 可以运行sample文件夹下的python代码…

但是, 如果要使用java开发的话 需要接着这样做…..

安装opencv-java

这一步非常DT, 因为官网上还有一个文档, 专门讲怎么用java开发的…http://docs.opencv.org/doc/tutorials/introduction/desktop_java/java_dev_intro.html

1) 首先, 需要安装ant:

 
 
  1. sudo apt-get install ant 

2) 其次 需要运行cmake, 关键是cmake的参数, 官网给的是这样的:

 
 
  1. export JAVA_HOME=/usr/lib/jvm/java-6-oracle#这句不加应该也可以的 
  2. cmake -DBUILD_SHARED_LIBS=OFF .. 

注意看输出的, 如果”To be built”里面有java这一项的话, 就应该是OK的…. 接下来只要make -j8 就可以了…

最坑爹的地方来了, 以这样的参数运行cmake以后, 运行make -j8总是不成功, 说有错误…..

Linux下安装并使用Java开发opencv的配置

查了半天, 发现这是一个BUG: http://code.opencv.org/issues/2859

那么试一试加上参数: -DBUILD_TESTS=OFF 吧…

所以cmake的参数要这样写才可以:

 
 
  1. cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -DBUILD_TESTS=OFF .. 

3) 用上面那样的参数运行cmake以后, 再: 

 
 
  1. make -j8 
  2. sudo make install 

这样就可以成功make了…

如何判断是否安装成功?

以上操作结束后, 看看build文件夹, bin目录下是不是有一个opencv-248.jar文件:

Linux下安装并使用Java开发opencv的配置

如果有的话 就说明成功安装了opencv的java组件…

!!注意!! 不能用windows下opencv安装目录下的那个opencv-248.jar!! 刚才生成那个jar和windows下的jar不一样的!! (我查了MD5码… 其实看文件大小也能看出来!!)

Eclipse下的配置

这里有一篇非常好的帖子, 写的非常到位, 我就不重复了, 链接:

http://exintopro.net/blog/2013/10/02/setting-up-eclipse-for-using-opencv-java-in-ubuntu/

这个帖子虽然很好, 但是没有介绍编译的那一部分, 由于安装java组件时的编译过程和官网给的不一样, 所以才导致我废了半天的时间啊!……

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 编译Java环境的OpenCV SO和JAR文件涉及到以下几个步骤: 第一步,安装Java开发环境(JDK)和OpenCV库。 第二步,准备好编译Java环境的OpenCV SO文件。打开终端,切换到OpenCV源码的根目录,运行如下命令: cmake -DBUILD_SHARED_LIBS=OFF -DWITH_JAVA=ON \ -DJAVA_AWT_INCLUDE_PATH=/usr/lib/jvm/java-7-openjdk-amd64/include/ \ -DJAVA_AWT_LIBRARY=/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/libjawt.so \ -DJAVA_INCLUDE_PATH=/usr/lib/jvm/java-7-openjdk-amd64/include/ \ -DJAVA_JVM_LIBRARY=/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so \ -DCMAKE_INSTALL_PREFIX=/usr/local .. 这个过程会自动检测Java的版本,并在编译过程中使用Java相关的库文件。完成后,运行make命令进行编译。 第三步,将编译好的OpenCV SO文件复制到合适的目录下(例如/usr/local/lib/)。 第四步,使用Java中的JNI调用OpenCV库,并编译生成Java环境的OpenCV JAR文件。在Java项目的源码中,引用OpenCV库需要使用到"libopencv_java.so"和"opencv-xxx.jar"两个文件。其中"libopencv_java.so"是在第三步中编译出来的,而"opencv-xxx.jar"需要在编译的过程中生成。在终端中,切换到OpenCV源码的根目录,输入以下命令: cd build/bin jar -cf opencv-xxx.jar org/opencv/* 这个过程会将OpenCVJava API打包成一个JAR文件。在Java项目中引用该JAR文件即可。 以上就是编译Java环境的OpenCV SO和JAR文件的步骤。需要注意的是,在编译过程中如果遇到问题,需要参照实际情况进行适当的调整。 ### 回答2: 在Linux系统中编译Java环境的OpenCV .so和.jar文件,可以按照以下步骤进行: 1.下载OpenCV源代码,解压后进入opencv目录。 2.安装OpenCV所需的依赖包,包括gcc,g++,cmake,git,libgtk2.0-dev,pkg-config,libavcodec-dev,libavformat-dev,libswscale-dev等。 3.使用cmake进行编译。执行以下命令进行配置: mkdir build && cd build cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. 4.使用make命令进行编译: make -j4 5.编译完成后,安装OpenCV: sudo make install 6.将编译生成的.so文件拷贝到Java项目的lib目录下。 7.使用Java Native Interface(JNI)来调用OpenCV库,可以在Java项目中创建一个jni目录,并在其中创建NativeUtils.java文件。 8.在NativeUtils.java中定义native方法,并使用Javah命令生成.h文件: javah -cp . NativeUtils 9.在生成的.h文件中实现native方法,调用OpenCV库中的方法。 10.编译Java项目,并将生成的.jar文件添加到项目中。 11.运行Java项目,在该项目中使用OpenCV库的相应方法即可。 总之,通过以上步骤,在Linux系统中编译Java环境的OpenCV .so和.jar文件并使用OpenCV库中方法不再是困难的事情了。 ### 回答3: 首先,在Ubuntu或其他Linux发行版中安装Java开发工具包(JDK)和OpenCV开发包。可以使用apt-get命令安装这两个包。 安装OpenCV后,进入opencv/build/java文件夹。这个文件夹包含OpenCV JAR文件和SO文件的源代码。 运行以下命令构建Java JAR文件: ant build-jar 该命令构建了包含OpenCV Java类的JAR文件。 接下来,编译Java原生库SO文件, 运行以下命令: ant build-native 该命令将编译Java原生库SO文件,然后将其复制到OpenCV JAR文件所在的lib目录下。 最后,将OpenCV JAR文件和SO文件添加到Java项目的classpath中。可以使用eclipse或其他Java IDE,或手动编辑项目的classpath。编辑后,可以使用Java代码调用OpenCV库中的函数。 通过上述步骤,便可以在Linux环境下编译Java环境的OpenCV SO和JAR文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值