OpenCV linux 安装 及 java项目运行需要的依赖和配置

一.下载源码   (俩个)

    1.opencv
    https://github.com/opencv/opencv.git

    2.opencv_contrib  这个不需要的可以不用

    https://github.com/opencv/opencv_contrib



注意两个版本要一致

将文件  opencv_contrib 文件夹放入 opencv 文件夹

上传到 linux服务器中

注意:需要配置好java Home

 官方文档
OpenCV: Installation in Linux

二.准备环境 - 命令

1.[编译器安装]

sudo apt-get install build-essential

[含义]
安装以下软件包(以及它们的依赖项)
gcc 和 g++:GNU C和C++编译器
make:一个用于自动化构建过程的工具
dpkg-dev:用于Debian包开发的工具
还可能会安装其他相关的编译和构建工具。

2.[必需的构建工具] 

sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

[含义]
cmake: 一个跨平台的自动化建构系统,用于控制编译过程,确保软件以正确的方式构建和安装。
git: 一个分布式版本控制系统,用于追踪代码的更改历史。尽管这个命令中包含了git,但并非所有编译任务都需要它,除非你要从Git仓库克隆源代码。
libgtk2.0-dev: GTK+ 2的开发文件。GTK+是一个广泛使用的图形用户界面库,许多软件项目使用它来创建图形界面。
pkg-config: 一个帮助编译器和链接器找到库的工具。它提供有关已安装库的信息,使得编译和链接过程更为简单。
libavcodec-dev, libavformat-dev, libswscale-dev: 这些是FFmpeg库的开发文件。FFmpeg是一个用于处理多媒体数据(如音频、视频)的开源库,这些开发文件允许其他软件项目链接到FFmpeg库并使用其功能。
当你运行这个命令时,sudo用于提供必要的超级用户权限,因为安装软件包通常需要修改系统级别的文件和目录。apt-get是Debian及其衍生发行版中用于处理软件包的命令行工具。 


3.[可选 Python开发所需] 

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

[含义]
python-dev: 这个包包含了Python开发所需的头文件和静态库,使得你可以编译和链接Python扩展模块。
python-numpy: NumPy是Python的一个开源数值计算扩展库,它支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
libtbb2: Intel Threading Building Blocks (TBB) 是一个广泛使用的C++并行编程库,libtbb2 是TBB的运行时库。
libtbb-dev: 这是TBB的开发文件,包含了TBB的头文件和库文件,用于编译链接TBB的C++程序。
libjpeg-dev: JPEG图像格式的开发库和头文件,用于处理JPEG图像。
libpng-dev: PNG图像格式的开发库和头文件,用于处理PNG图像。
libtiff-dev: TIFF图像格式的开发库和头文件,TIFF是一种灵活的图像文件格式,支持多种色彩、灰度、以及单色图像。
libjasper-dev: Jasper是一个用于处理JPEG-2000图像格式的库,libjasper-dev包含了开发所需的文件。
libdc1394-22-dev: 这个库提供了对IEEE 1394(也称为FireWire或i.LINK)总线接口的支持,常用于摄像头等设备的通信。

三.建构

 1.进入到上传的 opencv 文件夹中 创建一个用于构建的文件夹,并进入创建的文件夹

mkdir buildDemo
cd buildDemo

2.开始构建

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_GTK=ON -D OPENCV_GENERATE_PKGCONFIG=YES -D OPENCV_EXTRA_MODULES_PATH=/<你自己路径>/opencv/opencv_contrib/modules ..

[含义]

这个 cmake 命令用于配置 OpenCV(一个开源的计算机视觉库)的编译和安装过程。这条命令中包含了多个 -D 选项,用于设置 CMake 的变量,从而定制 OpenCV 的构建配置。下面是对这个命令的详细解释:

  1. cmake: 这是 CMake 工具的命令,用于生成项目的构建系统。

  2. -D CMAKE_BUILD_TYPE=RELEASE: 这个选项设置了构建类型为 RELEASE。在 RELEASE 类型下,OpenCV 会被编译为优化过的二进制文件,不包含调试信息,通常用于生产环境。

  3. -D CMAKE_INSTALL_PREFIX=/usr/local: 这个选项指定了 OpenCV 安装时的目标目录。在这个例子中,安装后的文件(如库、头文件、可执行文件等)将会被放在 /usr/local 目录下。

  4. -D WITH_GTK=ON: 这个选项启用了 GTK 支持。GTK 是一个广泛使用的开源图形用户界面工具包,OpenCV 可以使用 GTK 来创建图形用户界面。

  5. -D OPENCV_GENERATE_PKGCONFIG=YES: 这个选项指示 CMake 生成 pkg-config 文件。pkg-config 是一个帮助管理库文件版本和编译参数的工具,生成的 pkg-config 文件可以用于其他项目,以便它们可以更容易地链接到 OpenCV。

  6. -D OPENCV_EXTRA_MODULES_PATH=/<你自己路径>/opencv/opencv_contrib/modules: 这个选项指定了 OpenCV 额外模块的路径。opencv_contrib 仓库包含了 OpenCV 的一些非核心模块,这些模块需要单独编译。这个路径应该指向包含这些额外模块的目录。

  7.  .. : 这个参数告诉 CMake 在父目录中查找 CMakeLists.txt 文件。CMakeLists.txt 文件是 CMake 项目的配置文件,其中包含了构建项目的指令和选项。

构建成功

四.编译源代码
sudo make -j4

[含义]

  • -j4: 这是make命令的一个选项。-j选项允许make并行执行命令。后面的数字4表示可以同时运行的任务数,也就是并发的编译进程数。这个数字通常根据系统的CPU核心决定

  查看CPU核心数

lscpu | grep "Core(s) per socket"

通常需要30-50分钟  根据配置而定

5.安装

make install

 6.查找需要的依赖和jar包

# 查找 so文件
find / -name 'libopencv_java*'  
# 查找 jar包
find / -name 'opencv-*.jar'  

#默认会到 /usr/lib 下查找依赖 so文件,所以将libopencv_java<版本号>.so复制到 usr/lib 下

7.将jar包依赖到项目中

        <dependency>
            <groupId>org.bytedeco.javacpp-presets</groupId>
            <artifactId>opencv</artifactId>
            <version>454d</version>
            <!--一下内容必须添加-->
            <scope>system</scope>
            <!--指定jar路径-->
            <systemPath>${project.basedir}/libs/opencv-454d.jar</systemPath>
        </dependency>

 

最后:经过一番折腾发现了有现成的安装包

适用于   

# 更新包索引:
sudo apt-get update
# 安装libopencv4.2-java 包:
sudo apt-get install libopencv4.2-java


其他版本查看
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值