Cmake opencv 和 contrib遇到的問題

簡述:最近需要用到opencv的高級算法庫,比如目標跟蹤、特徵提取等。這些高級算法庫都封裝在一個單獨的模塊contrib。opencv官方下載的window下的exe文件,雙擊安裝後的opencv文件是已經編譯好的文件,這裏面是不包含contrib模塊的。所以,我們需要自己編譯一個帶有contrib模塊的opencv庫。準備編譯工具Cmake,opencv和contrib源代碼。

Cmake鏈接(我自己CSDN下載的,上傳百度雲共享給有需要的同學):https://pan.baidu.com/s/1HZ1Db4JFNVKkL_kETtRGuQ
提取碼:vab4
opencv_contrib:https://github.com/opencv/opencv_contrib
opencv:https://github.com/opencv/opencv

問題1:opencv 和 opencv_contrib版本必須要一致,現在GitHub的版本已經是4.2版本了,直接把下好就行了。我遇到的坑,opencv用本地以前下好的3.4.1版本,而opencv_contrib用的是最新的,那麼編譯可想而知,會出現各種意想不到的問題。

問題2:在編譯過程中,出現下載文件失敗的問題。既然不能自動下載,那麼就手動下載文件放在指定位置(./cache)。下載失敗的文件都是0KB,我們將手動下載的文件名重命名爲下載失敗的文件名,並且刪除下載失敗的文件名。我們需要查看CmakeDownloadlog.txt,比如:

#check_md5 “D:/opencv-3.4.0/opencv/sources/.cache/ffmpeg/3ae76b105113d944984b2351c61e21c6-opencv_ffmpeg.dll”
#mismatch_md5 “D:/opencv-3.4.0/opencv/sources/.cache/ffmpeg/3ae76b105113d944984b2351c61e21c6-opencv_ffmpeg.dll” “d41d8cd98f00b204e9800998ecf8427e”
#delete “D:/opencv-3.4.0/opencv/sources/.cache/ffmpeg/3ae76b105113d944984b2351c61e21c6-opencv_ffmpeg.dll”
#cmake_download “D:/opencv-3.4.0/opencv/sources/.cache/ffmpeg/3ae76b105113d944984b2351c61e21c6-opencv_ffmpeg.dll” “https://raw.githubusercontent.com/opencv/opencv_3rdparty/66b1fed06cf3510235f367f96aa26da5cb234a15/ffmpeg/opencv_ffmpeg.dll”

大概意思:檢查"D:/opencv-3.4.0/opencv/sources/.cache/ffmpeg/3ae76b105113d944984b2351c61e21c6-opencv_ffmpeg.dll"是否存在,沒匹配到,不存在,刪除,從網址https://raw.githubusercontent.com/opencv/opencv_3rdparty/66b1fed06cf3510235f367f96aa26da5cb234a15/ffmpeg/opencv_ffmpeg.dll 下載,我們手動從這個網址下載,然後命名到 D:/opencv-3.4.0/opencv/sources/.cache/ffmpeg/3ae76b105113d944984b2351c61e21c6-opencv_ffmpeg.dll。

問題3:

在這裏插入圖片描述
多次Configure,直到方框全爲白色爲止。

以上工作做好的話,就可以打開項目,進入CmakeTargets下的INSTALL,分別選擇release和debug進行build,編譯就開始了,大概需要10分鐘左右完成編譯過程。結果在install目錄下。
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章