日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Halcon与QT的联合编程(1)

發布時間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Halcon与QT的联合编程(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1、halcon代碼的封裝

2、halcon代碼的導出

3、halcon與QT聯合編程

3.1、QT工程建立

?3.2、qt與halcon聯合


1、halcon代碼的封裝

在對代碼進行封裝的時候,你一定要考慮你的輸入輸出是什么?

輸入:圖像

輸出:點、矩形、2個數字。(點和矩形是為了展示給客戶看的)

步驟:

(1)首先選中要封裝的代碼,右鍵創建一個新函數,進入如下界面:

一般文檔里面你也可以進行描述一下信息。

初學者暫時只需要選擇本地程序函數即可,下邊的庫函數和函數文件,就是自己定義的可以一直用他一直存在。但是本地函數他是本地的,只存在這個項目中。

圖中箭頭的進出分別表示參數的輸入與輸出。

(2)點擊應用就會完成函數的封裝。

(3)查看函數體的話,右鍵點擊封裝的函數,點擊顯示函數就會進入函數體。

(4)進入函數體之后,,可以在函數體的正上方右邊的編輯當前函數的接口和文檔這個按鈕,進入創建函數時的界面進行編輯。

?(5)如果有一些函數不想使用可以點擊halcon菜單欄中的函數菜單,

?以上就是基于halcon的函數封裝部分。

2、halcon代碼的導出

(導出之后再去寫入QT界面)

在halcon界面的菜單欄項上選擇文件---》導出語言,界面如下:

?導出之后,在上述導出文件的路徑下,你就可以看到程序了,此時這個程序就和halcon沒有關系了,就是獨立的cpp文件了。

3、halcon與QT聯合編程

3.1、QT工程建立

(可以把剛才導出的cpp程序,拖進QT中看一下--------這一步只是拖進來看一下導出來的文件是個什么樣子)

步驟:

(1)首先新建立一個工程。

文件----》新建立項目----》Qt Widgets Application---->choose

?Location:名稱與路徑的填寫

Build system:

Kits:

這一步一定要選中VS那個,(不要選擇MinGW,在做QT練習的時候選擇MinGW是可以的,但是做聯合編程的時候就不要選擇這個了。)

?(選擇MSVC不選擇MinGW,所以這就是在安裝QT之前,要先安裝VS的原因。------這里只是個人習慣而已)

Details:

類名稱(C)Class name:這個建議大家不要使用MainWindow,會很容易亂,類名稱建議大家改一個和自己項目有關的,比如這里使用QtHalconRecLocate,那么下邊的頭文件(Header files)、源文件(Source file)、和界面文件(Form file)就會隨著改變。

基類(B)Base class:這個是一個主窗口(可以使用QMainWindow).

?匯總Summary:

?最終生成的項目如下:

?建立的工程項目,如上。

-------------------至此一個項目框架我們就建立好了。?-----------------

上邊的都是自動生成的,不需要我們去寫,需要我們做的是:

需要將我們想要實現的功能添加進來。

(1)在.pro里邊:添加#include lib。(需要用到halcon,所以添加include lib項。

這里有一個代碼管理,即在.pro上右鍵,選擇在Explore中顯示。來到如下路徑下:

工程是.pro文件。

?我們需要在上述路徑下添加#include lib庫和包含文件。?

點擊QT界面左邊的項目,有一個編譯地址(構建項目),這個地址默認寫在我們當前目錄下,這里build-QtHalcon-Desktop_Qt_5_13_2_MSVC2015_64bit-Debug。

?而這里我們可以改一下,改為跟項目在一起。

?

?點擊生成,界面如下:

??

上述我們準備工作就做完了,包括:

1、qt的工程

2、halcon的導出

所以這兩步只是把材料做好了,下面需要去加工了。加工才是精華.......

?3.2、qt與halcon聯合

第一步:添加庫(理論上是要找你自己庫的所在位置,)為了便于管理在E:\QT\QtHalcon這個路徑(也就是Explore顯示所跳轉到的這個路徑下)先建立文件夾include包含頭文件和lib靜態鏈接庫和bin動態鏈接庫(bin一般也可以放在release下邊)

在include文件夾下邊,首先再建立一個文件夾includehalcon20x64(因為擔心后邊還有其他的include文件包含也放在include下邊,防止弄混)

首先找到halcon的安裝目錄,找到你安裝的halcon文件所在位置(本人halcon安裝在F盤下)即F:\softinstall\Study_Software\Halcon\include,把這個路徑下的文件全部復制進includehalcon20x64這個文件夾下去。(全部復制進來肯定不會有錯,也可以把下圖所紅框的4個不要,這樣以免沒用的占用磁盤空間;還有的人操作是鏈接過來,就想配置pcl庫時把路徑鏈接過來,但是個人覺的鏈接的不方便,因為每個人安裝的halcon位置不一樣;所以提倡放在這個相對路徑下,當你把代碼發布給別人時,他不用去改一些東西。)

?經測試這4個還是需要的。

?同理lib文件夾下也重新建立一個libhalcon20x64,把halcon安裝目錄下的lib文件也復制進來(這里可以暫時只復制halocn.lib和halconcpp.lib這兩個即可)。

第2步:添加到工程代碼即把這兩個包含到我們的工程代碼下邊。(在VS里邊是通過添加屬性一項一項來添加的,QT完全是使用代碼來加的)?中間的DEPENDPATH解釋是說應用程序依賴的搜索路徑。用qt自帶的添加庫的方法,這幾個代碼會自動生成。

?-L和-l表示這是一個lib庫(路徑添加就是這樣固定的,直接記住就行沒有為什么)

第3步:添加路徑完成后雙擊點擊.ui文件,開始寫窗口。

(1)拖進來一個Graphic View。就是qt的一個窗口。如果圖像多的話也可以拖多個。

在右邊黃色屬性框里邊,可以修改大小,名稱等。

可以寫成固定大小:

?(2)拖進來一個Push Button,并將名字修改為打開圖片(直接雙擊這個button按鈕可以修改名字的)。并在黃色屬性窗口上做如下修改:

?(3)拖進來一個Group Box。并直接修改名字為設置。(并附帶著把打開圖片這個Button放到設置這個大的Box里邊來)

(4)再拉進來一個垂直的彈簧Vertical Spacer,并在設置這個大的Box上右鍵,布局改為垂直布局。在整個大的就是最開始還沒有拖進來Graphic View這個的時候上面右鍵---》布局----》做一個水平布局,這樣水平與垂直高度都比較均衡,比較美觀。

此時你就會看到右邊黃色窗體上邊Group Box下邊有兩個功能,那么這3個就是一個組合。每一個包含里邊都是一個組合。

?按鈕上直接的修改名字都是現在這個拖進來的Box或者button上改名字,然后再在黃色框內做以修改。

簡單的功能到此結束,全部保存關閉這個.ui,再去編譯一下即可。如下就是我們編譯出來的一個項目:

?------------------至此與halcon還沒有發生關系-----------------------下面要導東西進去。

第4步:代碼整合

4.1:第一步:在.ui上的打開圖片上右鍵轉到槽,

選第一個點擊ok

4.2:第二步:在頭文件qthalconreclocate.h這個里邊加入include文件還有命名空間。

#include "HalconCpp.h"
using namespace HalconCpp;

?下面進入qthalconreclocate.cpp去寫打開圖片這個功能。在pB_OpenImage_clicked()下邊。

此時直接可以把剛才導出的halcon代碼拖進來,先把導出的halcon代碼里邊的前綴hv_和ho_給刪除掉,因為這個是halcon自帶的一個前綴沒用(個人習慣)

4.3:第三步:搜索action函數,一般拷文件就是拷貝這個里邊的文件。把這里邊的變量和函數分別拿出來放到對應的Button下。

1、先綁定窗口

具體操作見詳細代碼,內部有注釋。

最終實現的聯合編程界面如下:

?如果在執行代碼的過程中,要善于使用斷點調試。

完整代碼鏈接:https://download.csdn.net/download/m0_37957160/20440832?spm=1001.2014.3001.5503

總結

以上是生活随笔為你收集整理的Halcon与QT的联合编程(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。