Exercise 2
Install OpenCV
Opencv是什麼?
Open Source Computer Vision Library
由英特爾公司發起並參與開發,以BSD授權條款授權發行,可以在商業和研究領域中免費使用。
提供各種基礎的圖像處理和計算機視覺算法和一些高級的算法和模型,例如深度學習算法、行人檢測、人臉識別、手勢識別等等。這些算法和模型可以用於各種實際應用場景,例如自駕車、智能監控、人機交互等等。
支持多種平台,包括Windows、Linux、macOS等操作系統。
支持各種圖像和視頻格式,包括BMP、JPEG、PNG、AVI、MP4等。
支持多種程式語言,包括C++、Python、Java等,方便用戶選擇最適合自己的程式語言來進行開發。
OpenCV是一個強大的計算機視覺庫,它提供了豐富的功能和工具,可以幫助開發者實現各種圖像處理和計算機視覺應用。並且已經被廣泛應用於各種領域,包括自動駕駛、智能家居、機器人等等。
What is new in OpenCV 4.x
支持C++11:OpenCV 4已經完全支持C++11,開發者可以使用最新的C++特性來開發自己的應用程序。
更好的DNN模塊:OpenCV 4中的DNN模塊具有更高的性能和更好的準確性,支持更多的神經網絡架構和深度學習框架。
更好的性能:OpenCV 4中的許多算法進行了優化,提高了處理速度和準確性。
G-API:G-API是OpenCV 4中的一個新特性,它是一個用於構建圖像處理流水線的框架。使用G-API,開發者可以更輕鬆地構建高效的圖像處理流水線,同時還可以通過簡單的代碼優化來提高流水線的性能。
在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。