step1: 进入到opencv官网,进行源码下载

  • opencv官网:https://opencv.org/,找到自己需要的版本进行下载

    在这里插入图片描述

  • 下载后进行解压,然后进入到目录下新建build目录,将来cmake的内容都存在单独的build文件夹内

    cd opencv-4.6.0
    mkdir build
    cd build
    

step2: 安装环境依赖

  • 执行以下命令:
sudo apt install build-essential 
sudo apt checkinstall cmake pkg-config yasm git gfortran
sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install libjpeg8-dev libtiff5-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine2-dev libv4l-dev
sudo apt install libgtk2.0-dev libtbb-dev libatlas-base-dev libfaac-dev libmp3lame-dev libtheora-dev libvorbis-dev libxvidcore-dev libopencore-amrnb-dev libopencore-amrwb-dev x264 v4l-utils
sudo apt install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get libeigen3-dev
  • 在安装时报了两个错误:

    • 无法定位软件包:

    在这里插入图片描述

    1. 按照提示进行操作,没有起到效果:

    在这里插入图片描述

    1. 出问题的地方在cuda库,需要进行强制改写一下:
    sudo apt --fix-broken install -o Dpkg::Options::="--force-overwrite"
    

    在这里插入图片描述

    • 安装libjasper-dev时报错,无法定位软件包

      在这里插入图片描述

      1. 网上大部分都是按这个进行设置安装的,但我用的没有效果

        sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
        sudo apt update
        sudo apt install libjasper1 libjasper-dev
        
      2. 换成清华源之后可以

        sudo add-apt-repository "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe"
        sudo apt update
        sudo apt install libjasper1 libjasper-dev
        

        在这里插入图片描述

step3: 编译gpu版本时,需查看CUDA_ARCH_BIN

  • 进入到 cuda 安装目录下

    cd /usr/local/cuda-11.4/samples/1_Utilities/deviceQuery
    make
    ./deviceQuery
    

    在这里插入图片描述

Step4: 安装扩展模块opencv_contrib

OpenCV在视觉算法中的功能非常强大,其中一个原因就是该算法库一直在与时俱进的更新最新的算法,对于具有专利的算法(如SURF)以及一些还没有稳定的算法,OpenCV会将其置于扩展模块中,这些扩展模块包含在opencv_contrib代码库中。

  • 下载地址:https://github.com/opencv/opencv_contrib/tree/4.6.0
  • 解压后放到opencv4.6.0的目录下

step4: cmake

  • 需要注意的一点是:要屏蔽annaconda的一些环境信息,包括文件夹名字可以暂时改为anaconda.bk,~/.bashrc中屏蔽掉如下信息:

在这里插入图片描述

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_CUDA=ON -D CUDA_ARCH_BIN="8.7" -D CUDA_ARCH_PTX="" -D WITH_CUBLAS=ON -D ENABLE_FAST_MATH=ON -D CUDA_FAST_MATH=ON -D ENABLE_NEON=ON -D WITH_LIBV4L=ON -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF -D WITH_QT=ON -D WITH_OPENGL=ON -D BUILD_TIFF=ON -D OPENCV_EXTRA_MODULES_PATH=/home/zhao/disk/workspace/third_party/opencv-4.6.0/opnecv_contrib/modules/ ..

(如果编译不成功,参数设置是有问题的,可以参考这位博主的文章进行适配)

step5: make

执行如下命令进行编译安装,安装到/usr/local目录下

make -j8 
sudo make install

step6: 小试牛刀

在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐