Advertisement

OpenCV4.12在Centos7和Ubuntu18下的安装

阅读量:

OpenCV源码下载

Github地址,如果下载比较慢的话自己想想办法,额外安利一个加速吧:github加速
之后的OpenCV将会在/home/api-service/opencv下进行编译
下载的openCV包在/home/api-service/package/opencv-4.1.2.tar.gz
安装的基础环境很重要,否则会导致opencv在编译后某些功能不能正常使用

CentOS7下OpenCV4.12安装

更新CentOS国内源
复制代码
    yum install -y wget
    wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    yum clean all
    yum makecache
    
    
      
      
      
      
    
    AI写代码
OpenCV基础环境
复制代码
    yum install -y gcc gcc-c++
    yum install -y cmake3
    yum install -y gtk2-devel
    yum install -y ant
    yum install -y epel-release
    sudo rpm -import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
    sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
    yum install -y ffmpeg ffmpeg-devel
    
    
      
      
      
      
      
      
      
      
    
    AI写代码
解压OpenCV
复制代码
    mkdir -p /home/api-service/opencv
    tar -zxvf /home/api-service/package/opencv-4.1.2.tar.gz -C /home/api-service/opencv
    
    
      
      
    
    AI写代码
编译OpenCV
复制代码
    cd /home/api-service/opencv
    # 生成临时的build目录
    mkdir build
    cd build
    # cmake3预编译
    cmake3 -D BUILD_SHARED_LIBS=ON -D BUILD_TESTS=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv/ ..
    # 编译-会等比较久
    make -j12
    # 安装到系统
    make install
    # 复制相关库到系统环境
    cd /usr/local/opencv
    cp -r include /usr/local/
    cp -r share /usr/local/
    cd /usr/local/opencv/lib64
    cp libopencv* /usr/local/lib64
    vim /etc/ld.so.conf # (增加: /usr/local/lib64    /usr/local/lib )    
    source /etc/profile
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    AI写代码

Ubuntu18下OpenCV4.12安装

OpenCV基础环境
复制代码
    apt install -y build-essential && \
    apt install -y cmake git pkg-config libgtk2.0-dev && \
    apt install -y python-dev python-numpy libtbb2 libtbb-dev &&  \
    apt install -y libjpeg-dev libpng-dev libtiff5-dev libdc1394-22-dev && \
    apt install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev && \
    apt install -y libxvidcore-dev libx264-dev && \
    apt install -y libatlas-base-dev gfortran && \
    apt install -y ant && \
    apt install -y ffmpeg
    
    
      
      
      
      
      
      
      
      
      
    
    AI写代码
解压OpenCV
复制代码
    mkdir -p /home/api-service/opencv
    tar -zxvf /home/api-service/package/opencv-4.1.2.tar.gz -C /home/api-service/opencv
    
    
      
      
    
    AI写代码
编译OpenCV
复制代码
    cd /home/api-service/opencv
    # 生成临时的build目录
    mkdir build
    cd build
    # 这里BUILD_SHARED_LIBS=OFF才会编译出JAVA动态库,我也搞不懂为啥
    cmake -D BUILD_SHARED_LIBS=OFF -D BUILD_TESTS=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv/ ..
    # 编译会比较久,耐心等待 
    make -j12 
    make install
    /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
    ldconfig
    
    
      
      
      
      
      
      
      
      
      
      
      
    
    AI写代码

上面的流程一个基础的OpenCV还是比较容易安装出来的,主要的还是某些功能是否完整,一方面要确认系统的安装环境是否支持,我们需要看cmake构建的那个清单,看看是否支持到,否则就排查一下问题。

带JAVA库的编译

由于我这边是Java开发,因此需要编译出libopencv_java412.so库在CentOS7上正常,但是在Ubuntu上发现有问题,Java库始终编译不出来。可能的原因是一般Ubuntu的软件库版本会高些,因为装了ant后,似乎Java11也被装进去了。所以直接把java11的二进制文件删了,然后重新安装Jdk1.8,最后在配置JAVA_HOME以及PATH的java路径。JAVA_HOME必须配置为了opencv编译能够读取到它。然后cmake看看JAVA项的编译清单是否YES最后make以及install后。查看/share/java/opencv4/java/libopencv_java412.so是否存在

坑多,祝各位好运~

全部评论 (0)

还没有任何评论哟~