cmake編譯安裝OpenCV
步驟過程:下載OpenCV原始碼包opencv-3.2.0.zip
解壓後,檢視資料夾opencv-3.2.0/3rdparty/ffmpeg
---cmake結束之後---在ffmpeg資料夾下,有如下內容:
該資料夾下沒有ffmpeg.dll等動態連結庫,在用cmake編譯原始碼時,會下載ffmpeg.dll等庫,所有要保持網路通暢。
——————configure過程
下載opencv_ffmpeg.dll的過程
下載完之後,安裝
、
這時會在opencv的原始碼包裡發現多了三個檔案opencv_ffmpeg.dll opencv_ffmpeg_64.dl
在下載另一條的時候會失敗的,錯誤提醒如下:
編譯OpenCV3.2.0時,ffmpeg或ippcv下載不成功的解決方案可以通過手動配置來解決這類問題,當然也可以直接配置之後再編譯,
下載
解壓資料夾下後,會看到以下資料夾,看到ippicv:
在資料夾ippicv下,會有分別在linux 、mac、win系統的三個壓縮檔案包,如下:
然後解壓win的zip下:
然後將解壓的該資料夾,存放在\ippicv,首先新建一個unpack的資料夾,
然後,將ippicv_win資料夾複製到unpack資料夾下。
然後,編輯downloader.cmake(首先將複製一份),如下:
,然後編輯downloader.cmake,如下:
,然後重新點選configure,# # The script downloads ICV package # # On return this will define: # OPENCV_ICV_PATH - path to unpacked downloaded package # function(_icv_downloader) # Commit SHA in the opencv_3rdparty repo set(IPPICV_BINARIES_COMMIT "81a676001ca8075ada498583e4166079e5744668") # Define actual ICV versions if(APPLE) set(OPENCV_ICV_PACKAGE_NAME "ippicv_macosx_20151201.tgz") set(OPENCV_ICV_PACKAGE_HASH "4ff1fde9a7cfdfe7250bfcd8334e0f2f") set(OPENCV_ICV_PLATFORM "macosx") set(OPENCV_ICV_PACKAGE_SUBDIR "/ippicv_osx") elseif(UNIX) if(ANDROID AND NOT (ANDROID_ABI STREQUAL x86 OR ANDROID_ABI STREQUAL x86_64)) return() endif() set(OPENCV_ICV_PACKAGE_NAME "ippicv_linux_20151201.tgz") set(OPENCV_ICV_PACKAGE_HASH "808b791a6eac9ed78d32a7666804320e") set(OPENCV_ICV_PLATFORM "linux") set(OPENCV_ICV_PACKAGE_SUBDIR "/ippicv_lnx") elseif(WIN32 AND NOT ARM) set(OPENCV_ICV_PACKAGE_NAME "ippicv_windows_20151201.zip") set(OPENCV_ICV_PACKAGE_HASH "04e81ce5d0e329c3fbc606ae32cad44d") set(OPENCV_ICV_PLATFORM "windows") set(OPENCV_ICV_PACKAGE_SUBDIR "/ippicv_win") else() return() # Not supported endif() set(OPENCV_ICV_UNPACK_PATH "${CMAKE_CURRENT_LIST_DIR}/unpack") set(OPENCV_ICV_PATH "${OPENCV_ICV_UNPACK_PATH}${OPENCV_ICV_PACKAGE_SUBDIR}") message(STATUS "ICV: Package successfully downloaded") set(OPENCV_ICV_PATH "${OPENCV_ICV_PATH}" PARENT_SCOPE) endfunction() _icv_downloader()
,然後再點選 "Configure",紅色部分,全部成為白色部分,
,然後點選Generate按鈕:
,生成完成後,在cmake中的指定資料夾下,有如下:
,開啟上述指定的資料夾,有:
,利用visual studio 2015開啟上述的.sln解決方案,然後,將預設的Debug模式,改為Release模式,
,然後點選"Build"->"Build Solution"(生成--生成解決方案),大概等幾分鐘後,結果變為:
然後,開啟右側的解決方案資源管理器,再點選CMakeTarget-INSTALL:右鍵選擇“僅用於專案-僅生成INSTALL”,
,然後開啟生成的目錄:
發現在資料夾下install下,開啟該資料夾,會發現有一個x86的資料夾,