使用VS2017和Qt編譯OpenCV

作者:billy
版權聲明:著作權歸作者所有,商業轉載請聯繫作者獲得授權,非商業轉載請註明出處

前言

因爲最近項目中用到了工業相機作業,涉及到圖像處理無疑就要用到 OpenCV 了,用此章節來記錄 OpenCV 從源碼到編譯,再到應用的過程。

開發環境:Qt 5.12.8, vs2017 Community
軟件版本:opencv-4.2.0-vc14_vc15,cmake-3.17.1-win64-x64.msi

OpenCV下載地址:OpenCV官網
CMake下載地址:CMake官網

注意:OpenCV 4.0 現在是一個 C++11 庫,要求 C++11 兼容的編譯器。所需的 CMake 至少是 3.5.1 以上的版本

VS2017 編譯 OpenCV

  1. 打開 cmake-gui 配置資源目錄和輸出目錄
    在這裏插入圖片描述

  2. 配置vs編譯器版本,博主使用的是vs2017,選擇x64,不選會默認使用Win32
    在這裏插入圖片描述

  3. 勾選生成列表中的 WITH_OPENGL 和 WITH_QT 兩項,其他項最好不要改動。出現紅色區域繼續點擊 Configure,直到紅色全部消失
    在這裏插入圖片描述

  4. 點擊 Generate 生成 OpenCV 工程,成功後底下會提示 Generating done
    在這裏插入圖片描述

  5. 在 output 文件夾下找到工程 OpenCV.sln,並用VS打開
    在這裏插入圖片描述

  6. 這裏需要注意的是VS默認的編譯器設置是Win32,如果要生成64位的 OpenCV 庫則需要調整爲x64。可以在vs的安裝目錄 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCWizards 下修改 default.vcxproj,DefaultTest.vcxproj、vcupgradedefault.vcxproj 三個文件,將其中的Win32替換爲x64即可永久設置爲x64。當然也可以手動設置爲x64,但是手動設置僅僅是這一次有效,當新建一個項目打開就又是W32了;

  7. 選擇 Debug x64,右鍵 ALL BUILD 選擇 “生成” ,這裏需要等待一段時間直到全部成功
    在這裏插入圖片描述

  8. 選擇 Release x64,同樣右鍵 ALL BUILD 選擇 “生成”,等待一段時間直到全部成功

  9. 可以在 output 文件下查看生成的庫文件。靜態庫在lib目錄下,動態庫在bin目錄下
    在這裏插入圖片描述

  10. 到了這裏還差最後一步,把庫文件、頭文件集中到一起,不需要我們手動拷貝,工程中提供了 “安裝” 功能。我們回到 OpenCV 工程,右鍵 INSTALL 選擇 “生成”,記得 Debug 和 Release 都來一遍哦,完成之後就大功告成了!路徑爲:output\install
    在這裏插入圖片描述

Qt 編譯 OpenCV(比vs快好多好多,而且更方便!)

  1. 用Qt打開 opencv\sources\CMakeLists.txt

  2. 配置信息
    在這裏插入圖片描述

  3. Debug 和 Release 都跑一邊就完成了,勾選 “install” 會直接幫我們把頭文件、庫文件整合在一起,是不是比VS要方便很多!
    在這裏插入圖片描述

  4. bug記錄;
    bug:error C1041: 無法打開程序數據庫“xxx\xxx.pdb”;如果要將多個 CL.EXE 寫入同一個 .PDB 文件,請使用 /FS
    解決方案:工具 - 選項 - 構建和運行 - 概要 - 不勾選 “使用jom代替nmake”
    在這裏插入圖片描述

編譯完成的 OpenCV 庫

編譯完成之後整理了一下目錄結構,把結果做一下分享,有需求的小夥伴可以自行下載。
下載地址:OpenCV_msvc2017_64
提取碼:mzbp

OpenCV的調用請參考下一章節 Qt調用 OpenCV 顯示圖片

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