VS2015_Qt5_Halcon混合編程

 

1 在VS2015中配置Qt5

1.1 安裝Visual Studio 2015

Visual Studio 2015下載地址:https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspxhtml

安裝VS2015,其中VS2015的默認安裝不包括C++的編譯器,須手動勾選Visual C++。算法

clip_image001

1.2 安裝Qt5

Qt5的下載地址:http://download.qt.io/official_releases/qt/windows

clip_image003

雙擊運行qt-opensource-windows-x86-msvc2015_64-5.8.0.exe安裝程序,進入Qt 的安裝界面:函數

clip_image005

點擊「Next工具

clip_image007

點擊「Skip」,跳過帳號註冊,使用Qt 開發不須要註冊帳號。visual-studio

clip_image009

能夠本身填寫安裝路徑(不要用中文路徑,必須用全英文的路徑)或者用默認的路徑。學習

後面省略。。。測試

Qt安裝完成後,點擊「環境變量」按鈕,而後編輯系統變量PATH,把Qt 庫安裝後大量工具和動態連接庫所處的bin路徑添加到環境變量:網站

D:\Program\Qt5.8.0\5.8\msvc2015_64\bin

clip_image011

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-e4fa07168408ui

也能夠在VS2015中依次點擊 工具 --- 擴展和更新,打開管理窗口。在左側欄中點擊「聯機」標籤,在搜索中輸入Qt,能夠找到擴展包QtPackage,以下圖所示:

clip_image013

安裝後能夠在VS2015的IDE菜單中看到「QT5」項,點擊「QT5

點擊「Qt Options」菜單項,首次會自動彈出安裝項目模板的對話框:

clip_image015

點擊「」,如今只是安裝了Qt在VS新建項目時的可選模板,還沒配置Qt 庫的路徑。

以後在Qt Options對話框纔是配置Qt開發庫路徑的地方:

clip_image017

點擊「Add」按鈕,看到Add New Qt Version 對話框:

clip_image018

對話框中Version name能夠按照上面的填寫Qt5.8.0

下面的Path最重要,點擊「」按鈕,找到Qt 安裝路徑下面包含msvc2015的全路徑,只有路徑正確,才能點擊「OK」按鈕完成添加操做。

clip_image019

添加Qt5 開發庫以後,咱們再點擊VS2015 菜單「Qt5」-->「Reinstall templates and register libraries」菜單項,將剛纔配置的Qt5 開發庫註冊給VS。

clip_image021

2 在VS2015中配置Halcon

2.1 配置平臺

解決方案資源管理器 --- 右鍵項目 --- 屬性 --- 配置管理器,在配置管理器,把平臺改成X64

clip_image023

2.2 添加包含目錄

項目 --- 屬性 --- 屬性頁 --- VC++目錄 --- 包含目錄添加以下路徑:

D:\Program\MVTec\HALCON-17.12-Progress\include
D:\Program\MVTec\HALCON-17.12-Progress\include\halconcpp

clip_image025

2.3 添加庫目錄

項目 --- 屬性 --- 屬性頁 --- VC++目錄 --- 庫目錄,添加以下路徑:

D:\Program\MVTec\HALCON-17.12-Progress\lib\x64-win64

clip_image027

2.4 添加附加庫目錄

項目 --- 屬性 --- 屬性頁 --- 連接器 --- 常規 --- 附加庫目錄,添加以下路徑

D:\Program\MVTec\HALCON-17.12-Progress\lib\x64-win64

clip_image029

2.5 添加附加依賴項

項目 --- 屬性 --- 屬性頁 --- 連接器 --- 輸入 --- 附加依賴項,添加

halconcpp.lib

clip_image031

3 在Halcon中將程序導出爲C++文件

clip_image033

4 在VS2015中建立Qt程序

打開VS2015,點擊菜單「新建」 --- 「項目」,在新建項目對話框能夠看到有Qt 的項目模板:

clip_image035

在Visual C++子樹裏面有Qt5 Projects,而後在右邊選中Qt Application,下面名稱填寫「helloQt」位置填寫「E:\code\Qt\」,(Qt項目源碼最好全都放在全英文的路徑!) 解決方案名稱也是「helloQt」,點擊「肯定」按鈕,進入Qt項目嚮導界面:

clip_image037

點擊「Finish」。

新建好項目以後,點擊VS 工具欄的「運行」按鈕,就能夠生成運行項目了:

clip_image039

點擊「helloqt.ui

clip_image040

打開Qt Designer,對UI進行設計,拖入兩個「pushButton」按鈕(一個按鈕讀取圖像,一個按鈕圖像處理)和一個「label」窗口,如圖所示:

clip_image042

在VS2015的Qt程序的頭文件「helloqt.h」中聲明與按鈕事件對應的槽函數

clip_image043

再在Qt程序的源文件「helloqt.cpp」中添加與按鈕事件對應的槽函數的實現。

clip_image044

保存後關閉Qt Designer,再點擊VS2015的「運行」,運行結果如圖:

clip_image046

5 在VS2015中的Qt程序中插入Halcon算法

5.1 添加頭文件和命名空間

在Qt程序的頭文件「helloqt.h」中加入Halcon的頭文件和命名空間,如圖所示

clip_image047

5.2 添加Halcon中的變量

複製導出的Halcon程序中的變量

clip_image049

將複製的變量添加到Qt程序頭文件「helloqt.h」的公有成員中

clip_image051

5.3 添加Halcon中的算法代碼

1)複製導出的Halcon程序中的讀取圖像的代碼

clip_image053

將複製的代碼添加到Qt程序的源文件「helloqt.cpp」中的「讀取圖像」按鈕相對應的槽函數中。

clip_image055

2)複製導出的Halcon程序中的圖像處理的代碼

clip_image057

將複製的代碼添加到Qt程序的源文件「helloqt.cpp」中的「圖像處理」按鈕相對應的槽函數中。

clip_image059

5.4 添加Halcon中的外部函數

首先導出Halcon程序的外部函數

clip_image061

而後複製槽函數中使用到的外部函數

clip_image063

將複製的外部函數在Qt程序頭文件「helloqt.h」中進行聲明

clip_image065

將外部函數直接複製到Qt程序源文件「helloqt.cpp」中來實現。

clip_image067

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);

具體如圖所示:

clip_image069

6 測試

點擊「運行」,運行結果如圖

clip_image071

而後點擊「讀取圖像

clip_image073

最後點擊「圖像處理

clip_image075

7 本文程序代碼

本文程序代碼和操做手冊已經被上傳到CSDN中,地址爲:https://download.csdn.net/download/weixin_31075593/10505367

8 參考文獻

halcon11.0與vs2010的配置

WIN10 64位下VS2015 MFC直接添加 halcon 12的CPP文件實現視覺檢測

Qt添加Halcon窗體Demo(以及Halcon簡單的灰化效果)

halcon學習筆記(8)——QT顯示halcon處理的圖像和結果

Qt+Halcon  圖像顯示和簡單處理

版權聲明:

本文首發於onefish51的博客(http://www.cnblogs.com/onefish51https://blog.csdn.net/weixin_31075593),未經容許不得轉載,版權全部,侵權必究。

相關文章
相關標籤/搜索