halcon与QT联合:(5.2)瓶盖检测以及QT界面搭建
目錄
1、添加按鈕、添加資源
1.1添加那妞
?1.2、添加資源
1.2.1、準備資源文件
1.2.2、添加資源文件
?1.2.3、添加對應的資源代碼
在上一個博客5.1中只是做了一個簡單的界面,下面我們將在界面上添加按鈕、添加資源、畫圖(包括畫圓、畫矩形)、管理參數(參數的自動加載與保存)
1、添加按鈕、添加資源
(類似于軟件界面上方菜單欄的設置)
1.1添加那妞
PS:輸入后要回車(不然添加不上)
順便把右邊對應的屬性下:QObject下的objectName改一下:分別改為drawCircle、drawRectangle、drawRectangle2。
?下面操作下邊對應的Action Editor:
?還可以右鍵轉到槽:
?
?1.2、添加資源
1.2.1、準備資源文件
我們的意圖是添加資源,但是現在還沒有資源,我們需要先把資源添加進來,需要有一個圖片放在我們的本地文件夾內,本地地址就是在.pro上右鍵,選擇在Explore中顯示,直接就跳轉到本地地址文件夾了,在本地地址內新建立一個文件夾images,用來存放圖標。
PS:注意要添加的圖標不能使用一般的picture,圖標文件他是.icom格式(位圖)的或者.png格式文件,將需要的圖標文件復制粘貼到images文件夾下。
1.2.2、添加資源文件
在項目上右鍵---->添加新文件(Add New)
?qrc是qt的resourse文件。
?之后選擇添加,添加前綴。
?先添加前綴才可以再添加文件。
?之后編譯一下(構建---->qmake一下)回到.ui界面上,在Action Editor上就可以添加資源了(剛才是還沒有資源)
右鍵----->編輯----->圖標
?再ok
之后編譯一下三個圖標就都有了。
或者右鍵,添加工具欄,將三個圖標拖拽到工具欄也是可以的。
?1.2.3、添加對應的資源代碼
?我們上述添加的是畫圓、畫矩形的代碼,下邊是從halcon里邊寫好導出的。
halcon中畫圖的代碼如下:
dev_update_off()
dev_close_window()
open_window(0,0,256,256,0,'visible','',Windowhandle)
dev_open_window(0,0,768,576,'black',WindowID)
set_display_font(WindowID,16,'mono','true','false')
read_image(Images,'C:/Users/TIMI/Desktop/picture/circle/bord1.png')*畫圓dev_set_color('green')draw_circle(WindowID,Row,Column,Radius)*刷新顯示dev_clear_window()dev_display(Images)
*邊緣dev_set_draw('margin')gen_circle(Circle,Row,Column,Radius)*圓心顯示gen_cross_contour_xld(Cross,Row,Column,26,0)*在QT里邊如果想顯示必須有displaydev_display(Circle)dev_display(Cross)*畫矩形1(正矩形)draw_rectangle1(WindowID,Row1,Column1,Row2,Column2)dev_clear_window()dev_display(Images)dev_set_draw('margin')dev_set_line_width(3)gen_rectangle1(Rectangle1,Row1,Column1,Row2,Column2)CenterRow:=(Row1+Row2)/2CenterColumn:=(Column1+Column2)/2 gen_cross_contour_xld(Cross,CenterRow,CenterColumn,26,0)dev_display(Rectangle1)dev_display(Cross)*畫矩形2(斜矩形)draw_rectangle2(WindowID,Row3,Column3,phi,Length1,Length2)dev_clear_window()dev_display(Images)dev_set_draw('margin')dev_set_line_width(3)gen_rectangle2(Rectangle2,Row3,Column3,phi,Length1,Length2) gen_cross_contour_xld(Cross,Row3,Column3,26,0)dev_display(Rectangle2)dev_display(Cross)
記得畫完之后右鍵退出一下。
?將上述代碼對應導出,并把相應大代碼放置到對應的槽內。(記得清理窗口,替換窗口句柄,并定義一下變量)
將相應的代碼添加進槽,就能在界面上進行操作了。
?之后如果想在界面上保持你畫的圖形,還需要寫一個功能,就是把你的這個畫面拷貝下來。
?最終結果視頻演示如下鏈接:
https://download.csdn.net/download/m0_37957160/20484957
還存在一點小問題:就是繪制完圓或者矩形之后右鍵會程序強制退出,后期改正。
改正之前繪制之后右鍵程序強制退出的問題:
首先原因是讀取圖像的問題,因為界面上我讀取的圖像是halconimage,
所以你在繪制的時候也要讀取的是halconImage,不能是image。(而我之前就是把繪制的使用的是image,而不是halconImage,所以這樣你的image就是空的,相當于沒有東西。)?
總結
以上是生活随笔為你收集整理的halcon与QT联合:(5.2)瓶盖检测以及QT界面搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: halcon与QT联合:(5.1)瓶盖检
- 下一篇: halcon与QT联合:(5.3)瓶盖检