IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 在Linux下使用opencv源码编译java jar包和.so共享库的常见问题 -> 正文阅读

[人工智能]在Linux下使用opencv源码编译java jar包和.so共享库的常见问题

项目场景:

在Linux下使用opencv源码编译java jar包和.so共享库时,经常遇到无法编译jar包,makefile中不包含java,编译完成后找不到等问题

其他网络教程的常规编译方式:

## 创建安装目录
[root@localhost /]# mkdir -p /usr/local/opencv_make
[root@localhost opencv_make]# cd /usr/local/opencv_make
[root@localhost opencv_make]# mkdir release

##解压
[root@localhost opencv_make]# tar -zvxf opencv-4.1.0
[root@localhost opencv_make]# cd opencv-4.1.0

## 创建编译目录
[root@localhost opencv-4.1.0]# mkdir build
[root@localhost build]# cd build

## 需要手动安装3.5版本以上的cmake,参考另一篇文章;yum 下载的cmake为低版本,进行编译会报错
## 安装编译所需的软件
[root@localhost build]# yum -y install gcc gcc-c++ gtk±devel gimp-devel gimp-devel-tools gimp-help-browser zlib-devel libtiff-devel libjpeg-devel libpng-devel gstreamer-devel libavc1394-devel libraw1394-devel libdc1394-devel jasper-devel jasper-utils swig python libtool nasm build-essential ant
[root@localhost build]# cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv_make/release -DBUILD_TESTS=OFF ..

## 编译
[root@localhost build]# make -j8 & make
[root@localhost build]# cd /usr/local/opencv_make/opencv-4.1.0/build/lib

原因分析:

这种常规编译本身没有什么问题,但是有如下几个注意的点
  • 这是远程服务器上或虚拟机中的环境,可以看到登陆账户是 root@localhost
  • java环境在linux上配置主要有两种,一种是openJDK使用包管理工具直接安装(例如:sudo apt-get install jdk1.8),另一种是从官网下载linux平台的JDK解压后,配置到linux中的全局变量JAVA_HOME
  • 如果是从官网下载的JDK,那么在配置JAVA_HOME时,根据网上的推荐配置有一下三种方式
sudo vim ~/.bashrc (这是各个用户目录下的配置)
sudo vim /etc/bash.bashrc (根用户的配置,我们需要把环境变量配置在这里,所有的用户都可以读取)
sudo vim /etc/profile (这是ubuntu下的配置,opencv的脚本读不到)
  • 没有配置ant

解决方案:

  • 配置ant
sudo apt-get install ant
  • 在根用户环境变量中配置JAVA_HOME
sudo vim /etc/bash.bashrc

export JAVA_HOME=/usr/local/jdk8/jdk1.8.0_291
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin

  • 切换到根用户
su
  • 执行cmake
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv_make/release -DBUILD_TESTS=OFF ..
  • 如果在输出中看到java项出现在编译队列中且java编译选项中ant, JNIJava wrappers 能够被识别,那么恭喜你配置生效了
--   OpenCV modules:
--     To be built:                 calib3d core dnn features2d flann gapi highgui imgcodecs imgproc java java_bindings_generator ml objdetect photo python3 python_bindings_generator stitching ts video videoio
--     Disabled:                    world
--     Disabled by dependency:      -
--     Unavailable:                 js python2
--     Applications:                perf_tests apps
--     Documentation:               NO
--     Non-free algorithms:         NO


--   Java:                          
--     ant:                         /bin/ant (ver 1.10.7)
--     JNI:                         /usr/local/jdk8/jdk1.8.0_291/include /usr/local/jdk8/jdk1.8.0_291/include/linux /usr/local/jdk8/jdk1.8.0_291/include
--     Java wrappers:               YES
--     Java tests:                  NO
-- 
--   Install to:                    /usr/local/lib

  • 接下来执行make进行编译即可
make -j8 & make
  • 编译成功后,对应的opencv-401.jar和共享库libopencv_java401.so即可在build目录下的 bin/ 和 lib/ 下找到,将其复制到/usr/local/lib下即可在java中使用opencv-401.jar包中的方法载入
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-16 17:40:43  更:2021-12-16 17:41:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 0:46:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码