Linux系统部署OpenCV环境(java项目使用方式)

一、需要的东西

Opencv4.5.2的zip包(OpenCV官网下载

二、操作步骤

1. 上传opencv4.5.2的zip包到home目录(不一定home目录,根据运维情况决定)

2. 运行解压缩命令

unzip opencv-452.zip

3. 进入opencv-452文件夹,创建文件夹

cd opencv-452

mkdir build

4. 进入文件夹中

cd build

5. 如果没有安装cmake,使用下列命令安装,并且查看版本信息。

sudo yum install cmake

cmake -version

需要高一点的版本,我安装的是cmake version 3.7.2版本,如果版本过低会提示升级版本。

 解决方法:

(1)移除老版本cmake版本并安装依赖包

yum remove cmake -y ; yum install -y gcc gcc-c++ make automake openssl openssl-devel

(2)下载cmake-3.7.2.tar.gz安装包并解压  cmake官网地址,或者直接命令安装

wget https://cmake.org/files/v3.7/cmake-3.7.2.tar.gz ; tar -zxf cmake*.tar.gz

(3)编译/安装

cd cmake* ; ./bootstrap ; gmake -j `grep 'processor' /proc/cpuinfo | wc -l` ; gmake install

(4)查看编译后的cmake版本并创建连接

/usr/local/bin/cmake --version
ln -s /usr/local/bin/cmake /usr/bin/

(5)验证新版本

cmake --version

6. 接下来生成和配置cmake在我们的系统中构建可执行文件,输入命令

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

 7. 此时注意看执行结果,构建正常则是以下结果

如果构建失败没有找到ant和java,那么可能会得到以下输出:

解决办法:

如果ant和JNI都是(NO)没有具体的路径,那么就是需要安装并设置java和安装ant。

执行命令

sudo yum install ant

成功后再次执行第 6 步操作,如果还是(NO),就再试一下

sudo snap install ant --classic

8. 上述操作成功后就开始生成,执行

make -j4

其中(-j4)里边的4代表有几个核心,根据自己的服务器来写,四核就写4,八核就写8,量力而为,写少了安装慢,写超了服务器可能就崩溃了

 9. 上述命令执行完成之后继续执行

sudo make install

执行结束后查看 /user/local/share/java/opencv4 目录下是否有libopencv_java452.so文件和opencv-452.jar文件,如果有则说明安装成功

10. 将libopencv_java452.so复制到/usr/lib下,执行命令:

cp /usr/local/share/java/opencv4/libopencv_java452.so /usr/lib/

然后启动服务即可

增加配置类,不同环境的opencv加载方法

import org.apache.commons.lang3.SystemUtils;
import org.opencv.core.Core;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.net.URL;

@Configuration
public class OpenCVConfig {

    @Bean
    public void openCVLoad(){
        if (SystemUtils.IS_OS_WINDOWS) {
            System.out.println("windows启动OpenCV");
            String libName = "lib/opencv_java452.dll";
            URL url = ClassLoader.getSystemResource(libName);
            System.load(url.getPath());
        } else if (SystemUtils.IS_OS_LINUX) {
            System.out.println("linux启动OpenCV");
            System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/veerpower/article/details/130615347
今日推荐