iT邦幫忙

2023 iThome 鐵人賽

DAY 3
1
Software Development

圖解C++影像處理與OpenCV應用:從基礎到高階,深入學習超硬核技術!系列 第 3

【Day3】使用Visual Studio 建置OpenCV原始碼並安裝(Windows)

  • 分享至 

  • xImage
  •  

一、安裝方法

有兩種建置OpenCV的方式,分別為:

  • 使用Visual Studio建置OpenCV : Visual Studio是一個強大的整合開發環境,對於開發者來說非常友好且易於使用。
  • 使用MinGW建置OpenCV: MinGW是一套在Windows平台上提供gcc、g++、make等GNU工具的開發環境,對於那些偏好命令行工具或跨平台開發的開發人員來說是一個不錯的選擇。

這篇會講解如何使用Visual Studio的Build System對OpenCV進行編譯建置,當然如果你想直接使用官方建置好的Visual Studio函式庫,這也是OK的,可以參考【Day2】安裝官方預編譯的OpenCV二進位檔(Windows)

二、建置原始碼安裝OpenCV

1. 前置作業

無論你選擇使用哪一種方式,需要先安裝CMake 3.27.1建立工作環境下載OpenCV的第三方模組

1) 安裝CMake

CMake是一個開源的跨平台建置工具,它能夠自動生成用於各種開發環境的建置腳本。安裝CMake是編譯OpenCV的必要步驟,這將幫助你配置和生成相應的專案檔案。前往CMake官方網站,下載Windows x64 Installer,在安裝的過程中Installer會主動提示是否要將cmake加入到環境變數Path,請打勾。

打開命令提示字元,輸入以下命令檢查 CMake 是否安裝成功。如果安裝成功,你會看到 CMake 的版本信息。

cmake --version

2) 建立工作環境

新增工作資料夾,在哪裡都可以,本篇放在下載資料夾下。

mkdir %userprofile%\downloads\opencv_workspace

3) 下載OpenCV和OpenCV Contrib原始碼

OpenCV的官方網站下載最新版本的OpenCV原始碼,點選下載Sources,將壓縮檔解壓縮到opencv_workspace資料夾下,本篇使用OpenCV 4.8.0。將解壓縮後的opencv-4.8.0資料夾更名為opencv_workspace\sources

https://ithelp.ithome.com.tw/upload/images/20230913/201617327seYwnxacE.png

4) 下載貢獻模組(OpenCV Contrib)

OpenCV Contrib包含了一些額外的功能和模組,這些模組可能對你的應用非常有用。

請到opencv_contrib,選擇要使用的OpenCV版本Tag如4.8.0,點選Code按鈕以後按Download ZIP,解壓縮到opencv_workspace目錄。

當然如果你的電腦有git的話,也可以使用git clone指令下載opencv_contrib 4.8.0版本,到opencv_workspace目錄。

git clone --depth 1 --branch 4.8.0 https://github.com/opencv/opencv_contrib.git

2. 使用Visual Studio編譯OpenCV原始碼

1) 安裝Visual Studio

安裝Visual Studio完成後,開啟Visual Studio Installer,安裝MSVC編譯器、CMake、MSBuild工具。

https://ithelp.ithome.com.tw/upload/images/20230913/20161732VlerOZa6Ox.png

2) 生成Vsual Studio建置環境(CMake建置)

開啟CMake(cmake-gui)。完整CMake配置項目請參考 OpenCV configuration options reference

  1. 選擇原始碼資料夾opencv_workspace\sources完整路徑。
  2. 選擇build資料夾opencv_workspace\build-vs完整路徑,如下圖(1)
  3. 按下Configure,跳出一個選擇Generator的視窗,選擇Visual Studio xx xxxx,根據你的Visual Studio版本做選擇,如下圖(2)
  4. 搜尋BUILD_opencv,將顯示出的所有選項打勾,特別是BUILD_opencv_world
  5. 搜尋CMAKE_INSTALL_PREFIX,將欄位更改成opencv_workspace\build,這個資料夾就是將來動態連結庫(DLL)存放的位置,如下圖(3)。。
  6. 搜尋OPENCV_EXTRA_MODULES_PATH,將欄位更改成opencv_workspace\opencv_contrib\modules完整路徑。
  7. 搜尋CMAKE_BUILD_TYPE,更改成Debug或Release可以調整OpenCV的版本,但因為開發的過程難免或需要使用Break point去監控程式的執行狀況,因此建議選擇Debug版本。當然,你也可以兩個版本都進行建置,等到Debug建置安裝完成以後再更改CMAKE_BUILD_TYPE成Release。
  8. 再按一次Configure。
  9. 按下Generate。

https://ithelp.ithome.com.tw/upload/images/20230913/20161732BWpR5UA19Z.jpg

3) 使用Visual Studio編譯OpenCV

移動到opencv_workspace\build-vs,使用Visual Studio開啟OpenCV.sln

  1. 將上方的編譯版本改成Debug或Release,注意必須和前面的CMAKE_BUILD_TYPE一樣。
  2. 打開CMake Targets下拉菜單。
  3. ALL_BUILD選項,右鍵選擇建置開始編譯OpenCV函式庫。這個過程需要一些時間,建議去泡杯咖啡、蓋上棉被睡個覺。
  4. 接下來選擇INSTALL選項右鍵建置,開始安裝OpenCV函式庫到opencv_workspace\build資料夾下。
  5. 完成安裝後就會看到opencv_workspace\build\x64\vc17資料夾,底下有lib靜態連結函式庫資料夾和bin動態連結函式庫。

https://ithelp.ithome.com.tw/upload/images/20230913/20161732eoA4b148CK.png

3. 設定環境變數

因為通常編譯器不會主動詢找OpenCV連結函式庫的安裝路徑,需要將OpenCV的執行檔路徑添加到系統的環境變數中。步驟如下:

  1. 搜索並打開「環境變數」設定。
  2. 在「系統變數」區域中,找到「Path」變數,編輯該變數。
  3. 添加OpenCV的執行檔路徑opencv_workspace\build\x64\vc17\bin,然後保存變更。

https://ithelp.ithome.com.tw/upload/images/20230913/20161732momoKSlJbY.png

4. 資料夾結構

下圖是OpenCV安裝完成後的資料夾結構,進入到build資料夾可以看到:

  • bin:存放OpenCV工具執行檔。
  • include:C語言的include標頭檔,將來在編寫程式的時候使用到的#include <opencv2/opencv.hpp>就是從這個資料夾下抓的。
  • x64\vc17:使用MSVC(Microsoft Visual C++)編譯後的動態連結函式庫(*.dll)、靜態連結函式庫(*.lib)就是存放在這裡。
    • x64\vc17\bin:動態連結函式庫(*.dll)
    • x64\vc17\lib:靜態連結函式庫(*.lib)

https://ithelp.ithome.com.tw/upload/images/20230913/20161732CI4nRGTTIT.png


上一篇
【Day2】安裝官方預編譯的OpenCV二進位檔(Windows)
下一篇
【Day4】使用MinGW建置OpenCV原始碼並安裝(Windows)
系列文
圖解C++影像處理與OpenCV應用:從基礎到高階,深入學習超硬核技術!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言