首頁>技術>

在Windows環境下安裝主要包含5個步驟,分別是下載和安裝OpenCV SDK、配置包含路徑、配置庫目錄、配置連結器、配置環境變數。當每一步都配置完成後便可以開始OpenCV的學習之旅,接下來將會對每一步進行詳細的介紹。

01 下載和安裝OpenCV SDK

OpenCV SDK獲取非常簡單,透過搜尋引擎可以直接搜尋到OpenCV官網,在官網中找到Releases選項,裡面會有歷史釋出的OpenCV各個版本,找到OpenCV 4.1版本的下載介面,發現有多個可以選擇項,如圖1-1所示。其中Docs選項鍊接OpenCV的文件庫包含模組組成、函式介紹等內容,不過很可惜文件全部是英文的,部分同學閱讀起來還是存在著很多不方便之處。Sources選項是Ubuntu等Linux系統下的安裝包,關於其安裝方式,我們會在後面介紹。GitHub選項鍊接到GitHub中OpenCV 4.0版本的下載檔案,其內容與透過其他選項下載的內容是一致的。Windows選項、iOS pcak選項和Android選項分別是在Windows系統、iOS系統和Android系統下的安裝包。很遺憾OpenCV4.0並不支援Android環境的開發,但是OpenCV 4.1版本已經支援Android環境。最後一個選項Release Notes選項是最新版本的更新資訊。

圖1-1 OpenCV 4.0版本安裝包下載區域

下載完成後得到“opencv-4.1.0-vc14_vc15.exe”檔案,便可以開始安裝過程。其實所謂的安裝是一個解壓的過程,可執行檔案是一個自解壓的程式,雙擊後便會提示我們選擇解壓路徑。這裡根據自己需求選擇路徑即可,特別要說明的是,該程式會將所有檔案解壓在opencv的資料夾下,因此不需要在選擇解壓路徑中單獨新建一個opencv資料夾。由於筆者電腦安裝了多個版本的OpenCV,為避免混淆,單獨建立一個名為opencv4的資料夾,解壓到H:\opencv4。選擇好路徑後點擊【Extract】按鈕,便可以等待解壓過程的結束。整個OpenCV4的大小約為1G,根據電腦的效能不同,等待時間從幾十秒到幾分鐘不等。安裝過程圖片如圖1-2和圖1-3所示。

圖1-2 選擇提取OpenCV路徑

圖1-3 等待解壓過程

解壓結束後,去剛才選擇的路徑下檢視是否多了一個名為opencv的資料夾,該資料夾內含有build和sources兩個子資料夾,如果沒有,說明解壓錯誤,建議刪除後重新解壓。build資料夾是主要的OpenCV相關檔案,裡面含有標頭檔案與庫檔案等重要資訊,接下來的環境配置工作都將圍繞其展開。sources資料夾裡放置的是原始碼以及例程和圖片,後續也會對其中的部分進行介紹。如果想減少佔用硬碟空間,原則上可以刪除sources資料夾,但是這裡並不推薦大家這樣做,畢竟大多數情況下我們計算機的硬碟空間是充足的。

02 配置包含路徑

配置環境主要目的是告訴你的計算機你安裝的OpenCV放在哪裡,以及告訴你的IDE應該去哪裡尋找標頭檔案與庫檔案。為了完成與IDE的溝通,我們首先啟動Visual Studio 2015,建立一個新的專案。在彈出的新專案選項中,檢視自己已安裝的Visual Studio內容,選擇Visual C++中的Win32選項,在Win32專案和Win32控制檯應用程式中選擇後者。根據我們需求修改專案名稱,選擇存放的位置。為了測試OpenCV,我們將專案名稱修改為opencv4_test,存放在F:\opencv\內,如圖1-4所示。

圖1-4 建立Win32控制檯應用程式介面

圖1-5 應用程式嚮導

完成建立後,可以在介面的右側發現“解決方案資源管理器”,開啟opencv4_test專案左邊的小三角,可以看到“外部依賴項”、“標頭檔案”、“原始檔”以及“資原始檔”等四個資料夾,如圖1-6所示。接下來我們需要在“原始檔”裡新增專案cpp檔案用於編寫程式,首先右鍵【原始檔】選擇【新建項】,在彈出的頁面內選擇“C++檔案(.cpp)”並修改檔名稱,這裡我們將其命名為main檔案,點選【新增】完成空白原始檔的建立,如圖1-7所示。

圖1-6 空專案的解決方案資源管理器

圖1-7 向“原始檔”中新增空白cpp檔案

然後修改介面上方的“Debug”模式,將其修改為“x64”模式,如圖1-8所示。

圖1-8 修改Debug模式為x64

圖1-9 屬性管理器介面

圖1-10 屬性頁

屬性頁中的“VC++目錄”中的“包含目錄”、“庫目錄”和“連結器”中的“附加依賴項”便是我們需要修改的地方。在“包含目錄”裡新增兩個檔案路徑,分別是:

H:\opencv4\opencv\build\includeH:\opencv4\opencv\build\include\opencv2

重點需要留意一下,這裡不同於之前版本,這裡包含目錄裡只有兩個,取消了原來的…\inclde\opencv這個路徑,是因為在…\include\這個資料夾裡只有一個opencv2資料夾,OpenCV 4.1將兩個資料夾合併在了一起。新增完成兩個路徑後,便完成了包含路徑配置工作。

03 配置庫目錄

庫目錄配置過程與包含路徑配置過程相似,只需要尋找到對應的目錄路徑即可。筆者的配置路徑如為:

H:\opencv4\opencv\build\x64\vc14\lib

需要說明的是,“…\vc14\”指的是在Visual Studio 2015中使用,而如果使用的是Visual Studio 2017版本,就需要選擇“…\vc15\”。這裡如果選擇錯誤,就會造成版本不相容的問題,會出現配置失敗的一系列問題。所以讀者一定要根據自己的實際情況而選擇。

04 配置連結器

連結器的配置應該是OpenCV 4.1最大的改變,為了極大的方便開發者使用,節省配置時間,它簡化了庫檔案中的lib檔案數目。開啟庫目錄路徑,發現lib檔案數目只有兩個,如圖1-11所示。這兩個檔案的名字很像,唯一區別就是一個後面含有“d”,而另一個沒有。不含有的檔案是在Release模式下使用,配置該模式的時候才使用。含有“d”的檔案是在Debug模式下使用的,由於我們現在是在Debug模式下,因此我們選擇此檔案。開啟連結器左側的三角形,在“輸入”項中的“附加依賴項”新增opencv_world410d.lib,完成連結器的配置。

圖1-11 庫檔案中的lib檔案

05 配置環境變數

我們完成了告訴Visual Studio 2015去哪裡尋找OpenCV的工作,接下來該告訴計算機OpenCV在哪裡。找到“我的電腦”,右鍵選擇【屬性】,開啟電腦的系統設定介面,並選擇【高階系統設定】,進入系統屬性介面。如圖1-12所示。

圖1-12 系統設定介面

在系統屬性介面內選擇【環境變數】,並在新跳轉出的頁面中的“系統變數”部分找到“Path”變數,如圖1-13所示,在其後面新增如下路徑:

H:\opencv4\opencv\build\x64\vc14\bin

這裡要注意,我們會在使用者變數和系統變數裡都會發現“Path”變數。理論上兩者只需要配置一個就可以完成,但是一臺計算機上可能擁有多個使用者,因此建議在系統變數裡新增路徑。同時,由於可能前期配置過其他的變數,在新增OpenCV變數的同時,不要將之前的配置內容是刪除,而是使用分號將不同的路徑分開,避免對其他環境產生影響。

圖1-13 系統環境變數配置介面

06 驗證配置結果

完成了所有的配置過程後,需要透過程式驗證配置是否成功。但是在此之前需要說明的是,配置流程沒有順序要求,即可以先完成Visual Studio的配置工作再完成計算機環境變數的配置,也可以反過來進行。不過需要說明的是,按照本書的流程進行配置,在配置完成後需要重啟Visual Studio才可以在程式中載入OpenCV的標頭檔案。

我們在前面建立的main原始檔中輸入程式碼清單1-1中的程式,該程式的主要目的是讀取一張圖片並顯示該圖片,程式碼原理我們會在後面的章節中詳細介紹。現在只需要將程式碼輸入,構建解決方案,執行程式驗證環境配置是否成功。

程式碼清單1-1 install_test.cpp測試OpenCV 4.1是否安裝成功1.  #include <opencv2\opencv.hpp> //載入OpenCV 4.1標頭檔案2.  #include <iostream>3.  4.  using namespace std;5.  using namespace cv; //opencv的名稱空間6.  7.  int main()8. {9.    Mat img; //宣告一個儲存影象的類10.    img = imread("G:/opencv/lena.png"); //讀取影象,根據圖片所在位置填寫路徑即可11.    if (img.empty()) //判斷影象檔案是否存在12.    {13.      cout << "請確認影象檔名稱是否正確" << endl;14.      return -1;15.    }16.    imshow("test", img); //顯示影象17.    waitKey(0); //等待鍵盤輸入18.    return 0; //程式結束19.  }

執行如上程式,我們得到如圖1-14的結果,證明OpenCV環境配置成功,可以開啟OpenCV的學習之路了。

圖1-14 測試程式執行結果

下期預告:【從零學習OpenCV4】Ubuntu系統中安裝OpenCV 4

20
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Vue 生命週期(鉤子函式)