1 在VS2015中配置Qt5
1.1 安裝Visual Studio 2015
Visual Studio 2015下載地址:https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx
安裝VS2015,其中VS2015的默認安裝不包括C++的編譯器,須手動勾選Visual C++。
1.2 安裝Qt5
Qt5的下載地址:http://download.qt.io/official_releases/qt/
雙擊運行qt-opensource-windows-x86-msvc2015_64-5.8.0.exe安裝程序,進入Qt 的安裝界面:
點擊“Next”
點擊“Skip”,跳過賬號注冊,使用Qt 開發不需要注冊賬號。
可以自己填寫安裝路徑(不要用中文路徑,必須用全英文的路徑)或者用默認的路徑。
后面省略。。。
Qt安裝完成后,點擊“環境變量”按鈕,然后編輯系統變量PATH,把Qt 庫安裝后大量工具和動態鏈接庫所處的bin路徑添加到環境變量:
D:\Program\Qt5.8.0\5.8\msvc2015_64\bin
1.3 Qt5集成到VS2015的插件
Qt官方原本開發了用於Visual Studio集成的插件,即Qt Visual Studio Add-in,可用於VS2010 - VS2013,但VS2015不能用插件。微軟MSDN 網站提供了一個Qt5Package 的擴展包,用於支持Qt5程序開發,下載地址為:https://visualstudiogallery.msdn.microsoft.com/c89ff880-8509-47a4-a262-e4fa07168408
也可以在VS2015中依次點擊 工具 --- 擴展和更新,打開管理窗口。在左側欄中點擊“聯機”標簽,在搜索中輸入Qt,可以找到擴展包QtPackage,如下圖所示:
安裝后可以在VS2015的IDE菜單中看到“QT5”項,點擊“QT5”
點擊“Qt Options”菜單項,首次會自動彈出安裝項目模板的對話框:
點擊“是”,現在只是安裝了Qt在VS新建項目時的可選模板,還沒配置Qt 庫的路徑。
之后在Qt Options對話框才是配置Qt開發庫路徑的地方:
點擊“Add”按鈕,看到Add New Qt Version 對話框:
對話框中Version name可以按照上面的填寫Qt5.8.0,
下面的Path最重要,點擊“…”按鈕,找到Qt 安裝路徑下面包含msvc2015的全路徑,只有路徑正確,才能點擊“OK”按鈕完成添加操作。
添加Qt5 開發庫之后,我們再點擊VS2015 菜單“Qt5”-->“Reinstall templates and register libraries”菜單項,將剛才配置的Qt5 開發庫注冊給VS。
2 在VS2015中配置Halcon
2.1 配置平台
解決方案資源管理器 --- 右鍵項目 --- 屬性 --- 配置管理器,在配置管理器,把平台改為X64。
2.2 添加包含目錄
項目 --- 屬性 --- 屬性頁 --- VC++目錄 --- 包含目錄,添加如下路徑:
D:\Program\MVTec\HALCON-17.12-Progress\include
D:\Program\MVTec\HALCON-17.12-Progress\include\halconcpp
2.3 添加庫目錄
項目 --- 屬性 --- 屬性頁 --- VC++目錄 --- 庫目錄,添加如下路徑:
D:\Program\MVTec\HALCON-17.12-Progress\lib\x64-win64
2.4 添加附加庫目錄
項目 --- 屬性 --- 屬性頁 --- 鏈接器 --- 常規 --- 附加庫目錄,添加如下路徑
D:\Program\MVTec\HALCON-17.12-Progress\lib\x64-win64
2.5 添加附加依賴項
項目 --- 屬性 --- 屬性頁 --- 鏈接器 --- 輸入 --- 附加依賴項,添加
halconcpp.lib
3 在Halcon中將程序導出為C++文件
4 在VS2015中創建Qt程序
打開VS2015,點擊菜單“新建” --- “項目”,在新建項目對話框可以看到有Qt 的項目模板:
在Visual C++子樹里面有Qt5 Projects,然后在右邊選中Qt Application,下面名稱填寫“helloQt”位置填寫“E:\code\Qt\”,(Qt項目源碼最好全都放在全英文的路徑!) 解決方案名稱也是“helloQt”,點擊“確定”按鈕,進入Qt項目向導界面:
點擊“Finish”。
新建好項目之后,點擊VS 工具欄的“運行”按鈕,就可以生成運行項目了:
點擊“helloqt.ui”
打開Qt Designer,對UI進行設計,拖入兩個“pushButton”按鈕(一個按鈕讀取圖像,一個按鈕圖像處理)和一個“label”窗口,如圖所示:
在VS2015的Qt程序的頭文件“helloqt.h”中聲明與按鈕事件對應的槽函數
再在Qt程序的源文件“helloqt.cpp”中添加與按鈕事件對應的槽函數的實現。
保存后關閉Qt Designer,再點擊VS2015的“運行”,運行結果如圖:
5 在VS2015中的Qt程序中插入Halcon算法
5.1 添加頭文件和命名空間
在Qt程序的頭文件“helloqt.h”中加入Halcon的頭文件和命名空間,如圖所示
5.2 添加Halcon中的變量
復制導出的Halcon程序中的變量
將復制的變量添加到Qt程序頭文件“helloqt.h”的公有成員中
5.3 添加Halcon中的算法代碼
1)復制導出的Halcon程序中的讀取圖像的代碼
將復制的代碼添加到Qt程序的源文件“helloqt.cpp”中的“讀取圖像”按鈕相對應的槽函數中。
2)復制導出的Halcon程序中的圖像處理的代碼
將復制的代碼添加到Qt程序的源文件“helloqt.cpp”中的“圖像處理”按鈕相對應的槽函數中。
5.4 添加Halcon中的外部函數
首先導出Halcon程序的外部函數
然后復制槽函數中使用到的外部函數
將復制的外部函數在Qt程序頭文件“helloqt.h”中進行聲明
將外部函數直接復制到Qt程序源文件“helloqt.cpp”中來實現。
5.5 將Qt控件和Halcon窗體進行綁定
獲得Qt顯示控件的ID
Hlong MainWndID = (Hlong)this->ui.label->winId();
通過Halcon的OpenWindow函數,創建Halcon窗體,同時將Qt顯示控件的ID與Halcon窗體進行綁定。
OpenWindow(0, 0, ui.label->width(), ui.label->height(), MainWndID, "visible", "", &hv_WindowHandle);
具體如圖所示:
6 測試
點擊“運行”,運行結果如圖
然后點擊“讀取圖像”
最后點擊“圖像處理”
7 本文程序代碼
本文程序代碼和操作手冊已經被上傳到CSDN中,地址為:https://download.csdn.net/download/weixin_31075593/10505367。
8 參考文獻
WIN10 64位下VS2015 MFC直接添加 halcon 12的CPP文件實現視覺檢測
Qt添加Halcon窗體Demo(以及Halcon簡單的灰化效果)
halcon學習筆記(8)——QT顯示halcon處理的圖像和結果
版權聲明:
本文首發於onefish51的博客(http://www.cnblogs.com/onefish51和https://blog.csdn.net/weixin_31075593),未經允許不得轉載,版權所有,侵權必究。