Exercise 2

Install OpenCV


Opencv是什麼?

What is new in OpenCV 4.x

OpenCV官網下載OpenCV4.7.0版本並解壓縮到想存放的位置。

我放在本機磁碟(C:)內。

設定系統環境變數(Win10):

設定>系統>關於>進階系統設定>進階>環境變數

>在系統變數找到Path並編輯>新增

>貼上資料夾路徑C:\opencv\build\x64\vc16\bin

>確定

環境變數設置完成。

使用Visual stdio2022開啟新專案。

在"專案"選單找到"屬性"

專案屬性設定

1."包含目錄"新增include資料夾。

2."程式庫目錄"新增lib資料夾。

連結器>輸入>其他相依性>新增"opencv_world470d.lib"

安裝版本不同會有不同檔名,

例如:"opencv_world460d.lib"、"opencv_world455d.lib"

可至檔案位置查看正確檔名例如:"OpenCV\build\x64\vc16\lib"內

Release組態也做同樣設置。

須注意debug組態使用結尾有d的lib檔,release則需選擇沒有加d的。

新增程式碼測試是否安裝成功。(讀取image及顯示)

編譯成功但有warning,指出三個include內的檔案有編碼問題。

分別找出三個產生warning檔案core,hpp、calib3d.hpp、aruco_board.hpp更改儲存選項。

使用Unicode (TUF-8 有簽章)。

編譯成功,無warning。

執行結果,無法讀取圖片。

換一張測試圖發現前一張圖檔名誤把副檔名一起打進去,

導致無法讀取。

成功執行,顯示圖片。

使用resize改變大小,並讀取尺寸,成功改變尺寸但彈出的視窗大小沒變。

使用resizeWindow改變視窗大小符合圖片大小。

改回原尺寸以視窗配合圖片大小。

FAILED信息內容為後端啟用優先順序

Enabled backends(4, sorted by priority): GTK(1000); GTK3(990); GTK2(980); WIN32(970) + BUILTIN(WIN32UI)

前三項的GTK(1000); GTK3(990); GTK2(980)找不到對應的dll而出現FAILED訊息,分別為:

1.opencv_highgui_gtk470_64.dll 2.opencv_highgui_gtk3470_64.dll 3.opencv_highgui_gtk2470_64.dll

由第四順位執行using backend: WIN32 (priority=970)。

Enabled backends(3, sorted by priority): ONETBB(1000); TBB(990); OPENMP(980)

三個順位都因找不到對應dll而出現FAILED

1.opencv_core_parallel_onetbb470_64d.dll 2.opencv_core_parallel_tbb470_64d.dll 3.opencv_core_parallel_openmp470_64d.dll

嘗試使用CMake帶入所需程式庫。 OPENMP、TBB、無法找到有關gtk的程式庫。

使用Visual stdio開啟OpenCV.sln,編譯成功重啟系統,用編譯出的INSTALL資料夾做為新的opencv重新設定系統環境及專案屬性,執行一個新建立的測試程式卻還是無法解決以上FAILED訊息。


嘗試OpenCV其他版本,3.4.16版有不同結果。


雖然執行時無FAILED訊息,但觀察編譯訊息並沒有載入FAILED訊息提到的highgui_gtk***.dll以及parallel需載入的tbb.dll以及openmp.dll。