前言
紀錄如何用Qt建置OpenCV 3.0,因為有用到CMake,步驟較複雜,特地詳細記錄一下
步驟
下載Qt
到Qt官網下載
OpenSource → Get started → View All Downloads
下載 Qt for Windows 32bit VS2013
不載64bit的原因是之後cmake會出一點問題
不知道為什麼,但32bit可以用
因為目前Qt支援的Visual Studio compiler只到2013
所以要先有VS2013在電腦裡面才可以,2015他不吃 (超討厭)
如果你已經裝VS2015了,要嘛就是把2015清乾淨改裝2013
不然就是再裝一個VS2013……
我用的是Qt 5.5.0版本
編譯OpenCV
用cmake3.3.1 編譯OpenCV3.0:
- Configure → generator選擇VS 2013 → Use Default
- Configure完後要多勾選WITH_QT
檢查一下後面對應到的path是否正確
如果沒出現,就自己手動連到對的位置就好了
再Configure一次,紅色的都不見了,就按Generate
- 接著到mybuild資料夾內,找到這個OpenCV.sln這個檔案
用VS打開這個檔案,因為檔案很多,沒意外會開得有點久
全部開完後,在右側的Solution往下拉到最底,有一個ALL_BUILD
點選ALL_BUILD,選擇Win32,開始建置
過程中可能會有一些Warning,可以忽略
測試
VS2013
建立VC++ Win32主控台專案結束後,隨便側一份有用到OpenCV的cpp檔案
做的事情跟直接連接opencv一樣,修改屬性,但path會有些不同
VC++ include path
- 一樣連結到opencv的build裡面的include
VC++ library path
- 改成連結到mybuild裡面的lib,裡面還有一個Debug,總之就是連結到放一堆lib的那個資料夾
Linker input
- Additional Dependencies
- 把mybuild\lib\Debug內的d.lib結尾的檔案名字copy paste
- OpenCV 3.0 Cmake完後的lib list如下
1 | opencv_calib3d300d.lib |
Build專案時記得要選Win32 compiler , 因為cmake的時候選的是VS2013 32bit 不是64bit
- 環境變數
: 把原本連結到opencv bin的環境變數砍掉
: 改成連到mybuild\bin\Debug - 可以用cmd check,打開cmd鍵入path即可
{:class=”img-responsive”}
改完後重開機(若你是Windows10不需要重開)
Qt
測試Qt編譯有OpenCV的cpp
- New Project → Non Qt → C++
- Release勾勾取消,Debug位置後面一串default可以砍掉,擺在同一份資料夾就好
- 打開.pro檔
- 加入
INCLUDE_PATH
和LIBS
,Library位置就是mybuild內放lib的地方,記得前面要加 -l 且lib檔後面不需要.lib - 打開main.cpp,貼入隨便一份用到OpenCV的cpp檔案測試
Qt widget + OpenCV3.0
用Qt寫C++介面
New Project → Application → Qt Widgets
把Release取消,Debug位置後面一長串拿掉
打開.pro檔,加入
INCLUDE_PATH
和LIBS
打開mainwindow.cpp,加入一些基本的opencv語法
執行檔案