在没有安装opencv的linux服务器上运行 java + opencv 的程序

折腾了一天,分享给大家。原创文章,转载请注明出处。

编译opencv的so库和jar包 (3.4.3):

    1.官网上没有现成的so库和jar包文件,需要自己根据实际需要去编译。官网太慢,去码云上下载。opencv 标签 - Gitee.com  找到3.4.3版本,下载得到文件mirrors-opencv-3.4.3.zip

    2.上传文件到目标服务器的/usr/local/ 目录,解压缩:unzip mirrors-opencv-3.4.3.zip

    3.创建编译的文件夹:cd /usr/local/opencv && mkdir build && cd build

    4.执行cmake。cmake -DBUILD_SHARED_LIBS=OFF ..   这里注意必须要设置cmake -DBUILD_SHARED_LIBS=OFF,

      官网的解释 OpenCV: Introduction to Java Development    ,这样编译出来的libopencv_java的so库文件有20多MB,

         

      不设off的话生成的so库只有几MB,显然是不全的。 在没有安装opencv的服务器上运行会报错:java.lang.UnsatisfiedLinkError: no opencv_java343 in java.library.path   

      注意看一眼输出的编译信息。要保证java下面的ant,jni,java wrappers都有信息。否则不会生成so库和jar包

    5.  执行 make && make install。之后在/usr/local/opencv/build/lib目录下就可以找到libopencv_java343.so。

java测试程序

添加pom依赖,通过maven直接添加对应的jar包。或者也可以引入之前编译的/usr/local/opencv/build/bin目录下的jar包opencv-343.jar。
<dependency>
    <groupId>org.bytedeco.javacpp-presets</groupId>
    <artifactId>opencv</artifactId>
    <version>3.4.3-1.4.3</version>
</dependency>

在主函数中做简单的测试代码

public class Application {
    static {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    }

    public static void main(String[] args) throws InterruptedException {
        System.out.println("ok");
        //填你的图片地址
        Mat image = imread("/root/workspace/test/1.jpg", 1);
        System.out.println(image.cols());
        System.out.println(image.rows());
    }
}

部署

在没有安装opencv的服务器上,将libopencv_java343.so放到usr/lib目录下,然后运行测试jar包

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值