Ubuntu16桌面版编译OpenCV4的java库和so库

unzip opencv-4.1.1.zip; \

rm -rf opencv-4.1.1.zip; \

mkdir opencv-4.1.1/build; \

mkdir opencv-4.1.1/build/install

编译前的配置

  • 进入目录opencv-4.1.1/build/

  • 执行cmake,生成配置信息:

cmake -D CMAKE_BUILD_TYPE=Release -D BUILD_SHARED_LIBS=OFF -D CMAKE_INSTALL_PREFIX=./install …

  • 要注意的是,上面的-D BUILD_SHARED_LIBS=OFF参数十分重要!没有该参数时生成的libopencv_java411.so大小只有1532128,有了该参数libopencv_java411.so大小是78169672

  • 上述命令执行完毕后,请检查控制台输出的信息,如下图所示,"java"必须出现在To be build的栏目中,否则正式编译时不会编译java相关的库:

在这里插入图片描述

  • 以下是部分配置成功的输出信息,用于参考:

– Python (for build): /usr/bin/python2.7

– Java:

– ant: /usr/local/apache-ant-1.9.16/bin/ant (ver 1.9.16)

– JNI: /usr/lib/jvm/jdk1.8.0_311/include /usr/lib/jvm/jdk1.8.0_311/include/linux /usr/lib/jvm/jdk1.8.0_311/include

– Java wrappers: YES

– Java tests: YES

– Install to: /home/will/temp/202110/30/003/opencv-4.1.1/build/install


– Configuring done

– Generating done

– Build files have been written to: /home/will/temp/202110/30/003/opencv-4.1.1/build

编译

  • 在**opencv-4.1.1/build/**目录执行以下命令即可开始编译源码,参数-j6表示六个线程并行编译(我的电脑是6核CPU,您请酌情处理):

make -j6

  • CPU迅速上涨了:

在这里插入图片描述

  • 我这里大约10分钟不到,完成编译

安装

  • 在执行cmake命令的时候,已经用CMAKE_INSTALL_PREFIX=./install参数指定了安装目录在opencv-4.1.1/build/install,现在执行安装命令就会将OpenCV的库安装到这个目录下

  • 执行安装命令make install,如果控制台没有error相关的信息,就算安装成功了

  • 进入install目录看看,里面有四个目录:

bin include lib share

  • 进入目录opencv-4.1.1/build/install/share/java/opencv4,里面已经生成了我们需要的jar和so库:

opencv4/

├── libopencv_java411.so

└── opencv-411.jar

验证

  • 终于,文件已经准备好了,接下来写一个java应用验证OpenCV库能否正常使用

  • 我这里用的是IDEA,新建一个java工程,名为opencv-demo

  • 依赖本地jar,设置方法如下:

在这里插入图片描述

  • 选中刚才生成的opencv-411.jar

在这里插入图片描述

  • 新建Main.java文件,如下所示,功能是新建窗口展示本地图片,请自行准备图片并修改为合适的位置:

package com.company;

import org.opencv.core.Core;

import org.opencv.core.Mat;

import static org.opencv.highgui.HighGui.*;

import static org.opencv.imgcodecs.Imgcodecs.imread;

public class Main {

public static void main(String[] args) {

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

Mat mat = imread(“/home/will/temp/202110/30/pics/111.png”);

if(mat.empty()) {

System.out.println(“Image not exists!”);

return;

}

namedWindow(“src”, WINDOW_AUTOSIZE);

imshow(“src”, mat);

waitKey(0);

// 这一句很重要,否则按下任意键后看不到窗口关闭的效果

System.exit(0);

}

}

  • 最后,也是非常重要的一步,就是指定so库的位置,点击下图红框处:

在这里插入图片描述

  • 增加一个VM Options参数java.library.path,值就是刚才创建的libopencv_java411.so所在目录,如下图红框所示:

在这里插入图片描述

  • 设置完成后运行Main.java,得到结果如下,左侧就是显示本地图片的窗口:

在这里插入图片描述

  • 至此,OpenCV的java库和so库的生成和验证就完成了,如果您也是使用OpenCV的java程序员,希望本文能为您带来一些参考;

你不孤单,欣宸原创一路相伴

  1. Java系列

最后

我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

新鲜出炉的蚂蚁金服面经,熬夜整理出来的答案,已有千人收藏

还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。

新鲜出炉的蚂蚁金服面经,熬夜整理出来的答案,已有千人收藏

些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。**

[外链图片转存中…(img-KFBbg4fh-1714479622989)]

还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。

[外链图片转存中…(img-P60cHLKN-1714479622989)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 13
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值