官方安裝教程:
OpenCV installation overview
安裝版本: 4.5.4
一、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
該過程ffpmeg
和ippicv
可能下載不下來,出現錯誤,可參考ffpmeg 和 ippicv庫下載問題
勾選build_opencv_world
,后續生成會打包到一個庫,處理完ffpmeg
和ippicv
庫后重新點擊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),它為圖像處理和計算機視覺提供了一個特殊的功能子集。
- 解決方法
4.1、下載相應的文件
根據opencv/3rdparty/ffmpeg/ffmpeg.cmake
和opencv/3rdparty/ippicv/ippicv.cmake
中的下載地址及相應的hash
值確定文件下載鏈接
如: "https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_win_intel64_20191018_general.zip"
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
目錄下的ffmpeg
和ippicv
目錄下,記得修改文件名為hash+filename
, 其中ffmpeg_version.cmake要右擊頁面另存為,直接復制內容到文件hash值會改變,然后重新編譯(推薦)
或者修改opencv/3rdparty/ffmpeg/ffmpeg.cmake
和opencv/3rdparty/ippicv/ippicv.cmake
中下載路徑的URL
為下載后存放的路徑
二、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