史上最簡單 OpenCV for C++ 在 Windows 和 Ubuntu 上編譯安裝使用教學

2023-01-21 06:00:46

準備工作

原材料

版本資訊

  • GCC 版本 7.5.0
  • G++ 版本 7.5.0
  • OpenCV 版本 3.4.1
  • Cmake 版本 3.10

編譯元件和依賴包的安裝(Windows 請跳過

sudo apt install -y build-essential ccache cmake doxygen g++ gcc git libavcodec-dev libavformat-dev libavresample-dev libdc1394-22-dev libgphoto2-dev libgtk2.0-dev libjasper-dev libjpeg-dev libjpeg.dev libopenblas-base libopenblas-dev libpng-dev libswscale-dev libtbb2 libtbb-dev libtiff-dev libtiff5.dev libv4l-dev libvtk5-dev libvtk6-dev openjdk-8-jdk pkg-config pylint python-dev python-numpy qt5-default

下載並解壓 OpenCV 和 OpenCV Contrib

# Ubuntu 命令列 和 Ubuntu 桌面
wget https://github.com/opencv/opencv/archive/3.4.1.zip
wget https://github.com/opencv/opencv_contrib/archive/refs/tags/3.4.1.zip

unzip opencv-3.4.1.zip
unzip opencv_contrib-3.4.1.zip

# Windows 和 Ubuntu 桌面端直接下載解壓就好了

編譯 OpenCV 原始碼

Ubuntu 命令列

cmake 命令列編譯安裝

# 新建編譯資料夾
mkdir opencv-3.4.1-build

# 通過 cd 命令進入編譯資料夾
cd opencv-3.4.1-build

# CMAKE_INSTALL_PREFIX 是 OpenCV 的安裝位置
# OPENCV_EXTRA_MODULES_PATH 是 opencv_contrib-3.4.1 的 modules 資料夾
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/ahtelek/OpenCV/opencv_contrib-3.4.1/modules/ -D BUILD_TIFF=ON ..

# make 編譯,也可以使用 make -j、make -j8、make -j16 等命令速度會稍快一些
sudo make

# 安裝
sudo make install

Ubuntu 桌面端和 Windows

cmake-gui + cmake 編譯安裝

  • 選擇好 OpenCV 原始碼和 OpenCV 編譯資料夾
  • 就可以選擇 Configure

  • 選擇 MinGW Makefiles
  • 核取方塊選擇第二個

  • 這是 MinGW 中 bin 目錄下的 gcc.exe 和 g++.exe 檔案
  • 選擇 Finish

  • 等他跑完

  • 搜尋欄搜尋 extra
  • 選擇 opencv-contrib 下的 modules
  • 再點選 Configure,設定完成點選 Generate。
  • 一直到顯示 Configuring done Generating done

  • Win+R cmd cd 到編譯資料夾裡
  • 輸入 MinGW32-make 開始編譯,也可以使用 make -j、make -j8、make -j16 等命令速度會稍快一些
  • 編譯完成後,再輸入 MinGW32-make install 進行安裝

  • 編譯太慢了就不展示了(下面展示的是 Ubuntu 的)

用別人已經編譯好的

GitHub 倉庫中有人提供已經編譯好的 OpenCV,可以通過 Configuration 看到用了什麼編譯器、作業系統、cmake 版本
https://github.com/huihut/opencv-mingw-build

https://github.com/huihut/OpenCV-MinGW-Build/releases