opencv图片矫正在linux环境的使用

目录

前言

一、安装前置依赖

二、安装CMake

三、安装opencv

3.1、下载

3.2、创建 build文件

3.3、构建

3.4 、编译

3.5、文件生成完成

四、遇到的问题


前言

本文主要讲解opencv在linux下如何生成.so文件,可以先在网上找找有没有对应版本的so文件,如果没有在生成,具体使用参照我的另一篇博客。

一、安装前置依赖

yum -y install ant
yum install -y gcc gcc-c++ make automake
yum install -y wget

二、安装CMake

wget https://cmake.org/files/v3.6/cmake-3.6.2.tar.gz
tar -zxvf cmake-3.6.2.tar.gz
cd cmake-3.6.2
./bootstrap && make -j4 && sudo make install

三、安装opencv

3.1、下载

wget https://www.witersen.com/wp-content/uploads/2022/03/opencv-4.5.5.tar.gz

unzip opencv-4.5.5.zip

3.2、创建 build文件

cd ./opencv-4.5.5 mkdir build && cd build

3.3、构建

构建前先查看下java -version 版本,确保环境变量配置正确

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_SHARED_LIBS=OFF -D BUILD_TESTS=OFF ..

正确结果: 结果不正确,删掉build重新创建多构建几次,或者修改构建命令

opencv图片矫正在linux环境的使用_第1张图片

3.4 、编译

# -j4为系统核数/2,不加多核编译的话,可能需要几十分钟

make -j4

make install

3.5、文件生成完成

在/usr/local/share/java/opencv4目录下会有我们所需的jar包与so库文件,

如果没有,先全局搜一下libopencv_java455.so,还没有那就删了build文件,重新构建编译。Jar包window和linux版的都一样。

四、遇到的问题

问题:docker容器集成openCV,加载失败
java.lang.UnsatisfiedLinkError: /data/libopency java455.so: libstdc++.so.6: cannot open shared object file: No such file or directory。

原因:主要是因为libopency java455.so用到了libstdc++.so.6这个包,到时docker中没有。
解决方案:进入容器内部,执行以下步骤:

1、更新 libstdc++ 包:
apk update
apk add libstdc++

2、设置 LD LIBRARY PATH 环境变量libstdc++.so.6 的环境变量
export LD LIBRARY PATH="/data/:$LD_LIBRARY_PATH"

说明:/data/是libstdc++.so.6文件所在的目录

3、重启容器

你可能感兴趣的:(linux,java,opencv)