OpenCV源碼編譯


官方安裝教程:
OpenCV installation overview
安裝版本: 4.5.4

一、windows

Installation in Windows

1、環境

System: window10
CMake: 3.18.5
git: 2.23.0
visual studio: 2019
python: 3.6.5
opencv: 4.5.4 (No CUDA)

2、源碼下載

源碼地址: https://github.com/opencv/opencv

  • 下載

    git clone git@github.com:opencv/opencv.git
    
  • 加速
    如果網速不好,可以用以下地址

    git clone https://github.91chi.fun/https://github.com/opencv/opencv.git
    
  • 選擇版本
    查看所有版本

    git tag  
    

    切換到指定版本

    git checkout 4.5.4
    

3、源碼編譯

  • 打開CMake(cmake-gui)
    source選擇opencv源碼所在路徑
    build選擇在源碼中新建的build目錄
    點擊Configure, 選擇Visual Studio 16 2019 該過程ffpmegippicv可能下載不下來,出現錯誤,可參考ffpmeg 和 ippicv庫下載問題
    勾選build_opencv_world,后續生成會打包到一個庫,處理完ffpmegippicv庫后重新點擊Configure
    點擊Generate

  • 打開build目錄下OpenCV.sln
    啟動后選擇Release或者Debug模式 以管理員方式打開VS2019
    點擊生成,生成解決方案

  • install
    展開OpenCV工程下CMakeTargets目錄
    INSTALL設為啟動項
    點擊生成,生成結果保存在build/install目錄下

4、ffpmeg 和 ippicv庫下載問題

ffpmeg庫用於視頻解碼
FFmpeg是一個開源免費跨平台的視頻和音頻流方案,屬於自由軟件,采用LGPL或GPL許可證(依據你選擇的組件),一套可以用來記錄、轉換數字音頻、視頻,並能將其轉化為流的開源計算機程序。

ippicv,IPP-ICV 包由 OpenCV 庫提供,支持的平台默認啟用 IPP-ICV 優化,用戶無需安裝額外的獨立英特爾的IPP 包。英特爾IPP軟件構建塊是經過高度優化的指令集(使用英特爾AVX、AVX2和SSE),它為圖像處理和計算機視覺提供了一個特殊的功能子集。

ffmpeg
ffmpeg_version.cmake opencv_videoio_ffmpeg.dll opencv_videoio_ffmpeg_64.dll
ippicv
879741a7946b814455eee6c6ffde2984-ippicv_2020_win_intel64_20191018_general.zip (不同版本和系統名稱不一樣)

4.2、存放下載文件
可以把下載的文件夾存放至opencv/.cache目錄下的ffmpegippicv目錄下,記得修改文件名為hash+filename, 其中ffmpeg_version.cmake要右擊頁面另存為,直接復制內容到文件hash值會改變,然后重新編譯(推薦
或者修改opencv/3rdparty/ffmpeg/ffmpeg.cmakeopencv/3rdparty/ippicv/ippicv.cmake中下載路徑的URL為下載后存放的路徑

二、Linux

Installation in Linux

1、安裝相關依賴

最小依賴如下

sudo apt update 
sudo apt install -y cmake g++ wget unzip   
sudo apt-get install build-essential pkg-config libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev

其他相關依賴可參考install-opencv

# 2. INSTALL THE DEPENDENCIES

# Build tools:
sudo apt-get install -y build-essential cmake

# GUI (if you want GTK, change 'qt5-default' to 'libgtkglext1-dev' and remove '-DWITH_QT=ON'):
sudo apt-get install -y qt5-default libvtk6-dev

# Media I/O:
sudo apt-get install -y zlib1g-dev libjpeg-dev libwebp-dev libpng-dev libtiff5-dev libjasper-dev \
                        libopenexr-dev libgdal-dev

# Video I/O:
sudo apt-get install -y libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev \
                        libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev yasm \
                        libopencore-amrnb-dev libopencore-amrwb-dev libv4l-dev libxine2-dev

# Parallelism and linear algebra libraries:
sudo apt-get install -y libtbb-dev libeigen3-dev

# Python:
sudo apt-get install -y python-dev  python-tk  pylint  python-numpy  \
                        python3-dev python3-tk pylint3 python3-numpy flake8

# Java:
sudo apt-get install -y ant default-jdk

# Documentation and other:
sudo apt-get install -y doxygen unzip wget

2、獲取源碼

和windows一樣,可跳轉至源碼

3、編譯源碼

  • 先在opencv目錄下新建build文件夾,然后編譯
cd opencv
mkdir opencv
cd opencv
  • 構建
    默認直接cmake ..即可,如果要設置其他選項,則在cmake后面添加,如:
cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D WITH_QT=OFF \
      -D WITH_CUDA=OFF \
      -D WITH_OPENGL=ON ..

CMAKE_BUILD_TYPE指定編譯類型,可選項為DEBUG和RELEASE;CMAKE_INSTALL_PREFIX指定庫的安裝路徑;OPENCV_EXTRA_MODULES_PATH指定opencv_contrib里面的modules文件夾的路徑;WITH_CUDA是是否啟用CUDA支持,可選項為ON和OFF。

  • 編譯
    構建(cmake 命令)沒有錯誤后,執行make,-j后面的數字表示同時幾個進程
make -j4

4、安裝

如果編譯過程中未指定安裝路徑,則默認安裝在/usr/local,具體文件如下:

/usr/local/bin : 可執行文件
/usr/local/lib : 庫文件
/usr/local/cmake/opencv4 : cmake包
/usr/local/include/opencv4 : 頭文件
/usr/local/share/opencv4 : 其他文件

sudo make install


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM