天天看點

VS2019+openCV4.5+openCV4.5 contrib擴充子產品安裝1、VS2019安裝

VS2019+openCV4.5+openCV4.5 contrib擴充子產品安裝

1、VS2019安裝

首先第一步安裝VS2019。

https://visualstudio.microsoft.com/zh-hans/vs/

社群版免費,隻要登陸賬号即可。

2、opencv和擴充子產品下載下傳

OpenCV4.5下載下傳連結:https://opencv.org/releases/

OpenCV4.5 contrib下載下傳連結:https://github.com/opencv/opencv_contrib/releases

Cmaker下載下傳連結:https://cmake.org/download/

VS2019+openCV4.5+openCV4.5 contrib擴充子產品安裝1、VS2019安裝

首先找到并解壓cmaker,然後在bin檔案夾下找到cmaker-gui.exe,點選即可。

VS2019+openCV4.5+openCV4.5 contrib擴充子產品安裝1、VS2019安裝

然後,在where is source code中浏覽到OpenCV4.5的source檔案夾,where to build the binaries浏覽到你建立立的空檔案夾.

VS2019+openCV4.5+openCV4.5 contrib擴充子產品安裝1、VS2019安裝

之後點選Configure,會彈出讓你選擇VS版本,在這裡我們選擇VS2019,但請注意,下面Optional toolset to use選擇x64.

點選finish之後,點選configure,會出現大片紅色,這裡,先更改紅色中的部分選項:

  1. 手動勾選BUILD_opencv_world。勾BUILD_opencv_world,主要是把所有的lib檔案都弄到一個opencv_world450d.lib中友善配置,若不勾選在最後會産生大量.lib檔案,導緻最後配置Opencv到vs會太麻煩,有過OpenCV動态連結庫的人都知道;
  2. OPENCV_ENABLE_NONFREE是為了在編譯成功後可以使用具有專利保護的算法,如果該變量不被選中,就不能使用例如SIFT算法在内的具有專利保護的算法,;
  3. 找到“OPENCV_EXTRA_MODULES_PATH”變量,該變量的含義是告訴編譯器擴充包的源碼在哪裡,選擇我們剛才下載下傳的opencv_contrib安裝包裡的modules檔案夾。如果這個變量為空,在編譯過程中也不會報錯,隻是安裝了OpenCV的基礎版。

勾選完上述操作後,再次點選configure·,直至所有的都變白,但還是要注意下面畫紅框的是否報錯,如果有報錯,你不管,後面的步驟還會在出錯,進行不下去.

下面我們對cmaker出現錯誤進行解讀,節選自其他部落格,加上自己了解:

VS2019+openCV4.5+openCV4.5 contrib擴充子產品安裝1、VS2019安裝

這幾個錯誤是類似的就是Download failed。那隻能手動下載下傳了(沒網絡的換個有網的下載下傳,下載下傳一直失敗也直接手動下載下傳,手動下載下傳不了的試着打開vpn),那麼問題來了。

去哪裡下載下傳?

下載下傳後放哪裡?

仔細看錯誤資訊,可以打開download log file看看,如提示,我的在D:\opencv_4.5\opencv_contrib\opencv_build/CMakeDownloadLog.txt,打開可以看到如下内容:

VS2019+openCV4.5+openCV4.5 contrib擴充子產品安裝1、VS2019安裝

CMake後會發現source根目錄下會出現一個.cache的檔案夾,裡面有需要下載下傳的内容,如果下載下傳失敗所有的内容都是0KB(隻是路徑圖)如下圖:

VS2019+openCV4.5+openCV4.5 contrib擴充子產品安裝1、VS2019安裝

再看看CMakeDownloadLog.txt的第一句:use_cache "D:/Kits/OpenCV/opencv-source/opencv-4.5/.cache"說的就是這個意思。在看看第二句:do_copy “opencv_ffmpeg.dll” “b8120c07962d591e2e9071a1bf566fd0” “https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/opencv_ffmpeg.dll” “D:/Kits/OpenCV/opencv-source/opencv-4.5/build/3rdparty/ffmpeg”,說的是從https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/opencv_ffmpeg.dll這個網址下載下傳opencv_ffmpeg.dll到D:/Kits/OpenCV/opencv-source/opencv-4.5/build/3rdparty/ffmpeg,其MD值為b8120c07962d591e2e9071a1bf566fd0,然後拷貝到.cache對應的檔案夾下(該檔案名為MD值+’-’+下載下傳的檔案名(也可以複制原本的要下載下傳檔案的檔案名))。那麼這個檔案就類似腳本進行自動化下載下傳,那麼我們就知道手動要怎麼搞了。

回答-去哪裡下載下傳:

https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/opencv_ffmpeg.dll

回答-下載下傳後放哪裡:

很顯然下載下傳後放.cache下對應的地方,然後改其名字為MD值+’-’+下載下傳的檔案名。比如opencv_ffmpeg.dll這個檔案下載下傳後凡在.cache下的ffmpeg下,然後改名為b8120c07962d591e2e9071a1bf566fd0-opencv_ffmpeg.dll替換原來0KB的那個檔案。

整個過程大概就是這樣,但有幾點特别重要:

  1. https://raw.githubusercontent.com/opencv/opencv_3rdparty/fe71c0ad807fdc33c2178e48e488f1e9b177c39a/ffmpeg/ffmpeg_version.cmake 無法直接下載下傳,而是直接打開了ffmpeg_version.cmake,可以右鍵網頁選擇另存為 ffmpeg_version.cmake.txt,然後再改為ffmpeg_version.cmake。這裡如果自己建立一個txt,然後直接将網頁上的内容拷進去,然後再該字尾為.cmake是不行的,會提示md5不比對。
  2. 将 ippicv.cmake 的https://raw.githubusercontent.com

    修改為:https://raw.staticdn.net 根本不行

  3. 下載下傳.i檔案時,打開網址直接顯示文檔,一定要将網頁另存為.i 檔案,如果複制的話是不能用的。
  4. 打開vpn。

最後再次CMake-Configure就成功通過了

後面就比較簡單了,網上講的人也比較多,我就寫到這吧。

繼續閱讀