
背景
ROI即感興趣區(qū)域是我們機(jī)器視覺圖像處理經(jīng)常使用的基本功能。在實(shí)際的視覺檢測項(xiàng)目過程中,我們將待檢測目標(biāo)的檢測特征框選出來的區(qū)域稱作ROI(感興趣區(qū)域)。使用ROI功能我們可以針對性的處理目標(biāo)特征,提升檢測效率和準(zhǔn)確性,同時還可以過濾掉環(huán)境中引入的干擾因素。
ROI創(chuàng)建有以下兩個優(yōu)點(diǎn):
1.可縮減處理圖像的區(qū)域范圍,減少圖像像素處理量,縮短圖像處理時間,提升效率。
2.基準(zhǔn)模板。框選檢測目標(biāo)特征后可過濾掉干擾因素,提高檢測方案的準(zhǔn)確度。
在采集到一張圖像后,即可在圖像上框選感興趣的區(qū)域創(chuàng)建ROI。
常見的ROI類型有:矩形、旋轉(zhuǎn)矩形、圓形、圓環(huán)。本期課程以創(chuàng)建矩形ROI為例。

在上期課程中,我們講述了如何使用 VPLC系列機(jī)器視覺運(yùn)動控制一體機(jī)進(jìn)行圖像開閉運(yùn)算的課程。本期課程正運(yùn)動小助手給大家分享一下VPLC系列機(jī)器視覺運(yùn)動控制一體機(jī)對圖像進(jìn)行ROI創(chuàng)建的課程。
01VPLC控制器
(一)VPLC516E構(gòu)架圖

(二)課前準(zhǔn)備
1.電腦一臺,安裝ZDevelop3.10以上版本軟件
2.VPLC516E一臺
3.24V直流電源一個
4.網(wǎng)線一根
5.WinSCP軟件
6.電線若干
02課程主要使用的指令
1.SET_REDRAW -- 指定區(qū)域重新繪制(需要在自定義元件的刷新函數(shù)中使用)
SET_REDRAW ([x, y, width, height])
參數(shù):
X,Y:顯示區(qū)域左上角的坐X、Y坐標(biāo)位置
width,height:區(qū)域?qū)捄透?/p>
2.MOUSE_SCAN -- 掃描觸摸按下動作
MOUSE_SCAN (num)
參數(shù):
num:觸摸對應(yīng)的位置的X、Y坐標(biāo)分別存儲在table(num), table(num+1)
3.ZV_HMIADJRECT -- 矩形ROI調(diào)整
hittype = ZV_HMIADJRECT(mousex,mousey,tab_rect,hittype)
參數(shù):
mousex:HMI 控件的鼠標(biāo)X坐標(biāo)
mousey:HMI 控件的鼠標(biāo)Y坐標(biāo)
tab_rect:保存矩形ROI參數(shù)的TABLE索引,依次為ltx、lty、 rbx、rby,即分別為正矩形左上角坐標(biāo)ltx、lty,右下角坐標(biāo)rbx、 rby,對應(yīng)的是hmi控件坐標(biāo)系下的值,調(diào)整后的值將直接替換調(diào)整前的值。
hittype:指定擊中區(qū)域編號,表示指令要調(diào)整的矩形對應(yīng)部分,為-1時表示無效編號,不對矩形做調(diào)整;為有效編號時則調(diào)整矩形對應(yīng)的部分。按下鼠標(biāo)左鍵則返回當(dāng)前選中的擊中區(qū)域編號,按住鼠標(biāo)左鍵不放再移動鼠標(biāo)表示在不斷地在調(diào)整指定編號所對應(yīng)的矩形部分,此時返回的擊中區(qū)域編號與輸入的編號一致。
返回值:
hittype:根據(jù)鼠標(biāo)點(diǎn)擊位置計(jì)算的新的擊中區(qū)域編號
4.MOUSE_STATE -- 讀取觸摸狀態(tài)
MOUSE_STATE (num)
參數(shù):
num:觸摸對應(yīng)的位置的 X,Y 坐標(biāo)分別存儲在 table(num), table(num+1)
5.HMI_CONTROLSIZEX -- 獲取控件寬度
HMI_CONTROLSIZEX ([winid, controlid])
參數(shù):
winid:HMI文件里面窗口編號
controlid:元件編號,缺省為當(dāng)前自定義元件寬度
6.HMI_CONTROLSIZEY -- 獲取控件高度
HMI_CONTROLSIZEX ([winid, controlid])
參數(shù):
winid:HMI文件里面窗口編號
controlid:元件編號,缺省為當(dāng)前自定義元件高度
7.ZV_POSTOIMG -- HMI控件坐標(biāo)轉(zhuǎn)圖像坐標(biāo)
ZV_POSTOIMG(latch_id,num,tab_in_id,tab_out_id)
參數(shù):
latch_id:鎖存通道號
num:坐標(biāo)點(diǎn)數(shù)量
tab_in_id:存放轉(zhuǎn)換前坐標(biāo)點(diǎn)的TABLE索引,num個坐標(biāo)點(diǎn)數(shù)據(jù)依次為x、y、x、y......
tab_out_id:存放轉(zhuǎn)換后坐標(biāo)點(diǎn)的TABLE索引
8.DRAWRECT --繪制矩形
DRAWRECT(x1,y1,x2,y2)
參數(shù):
x1,y1:顯示區(qū)域左上角的坐標(biāo)位置
x2,y2:顯示區(qū)域右下角的坐標(biāo)位置
03軟件實(shí)現(xiàn)
1.打開ZDevelop軟件:新建名稱為“創(chuàng)建ROI.zpj”項(xiàng)目→新建“HMI”文件→新建“main.bas”文件(用于編寫界面響應(yīng)函數(shù)、并開啟HMI自動運(yùn)行任務(wù))→新建“相機(jī)采集.bas”文件(用于實(shí)現(xiàn)相機(jī)采集功能)→新建“初始化.bas”文件(用于初始化測量參數(shù))→文件添加到項(xiàng)目。

2.設(shè)計(jì)HMI主界面和關(guān)聯(lián)它的控件變量。

3.編寫實(shí)現(xiàn)對圖像進(jìn)行ROI創(chuàng)建的執(zhí)行函數(shù)。
'ROI創(chuàng)建的執(zhí)行函數(shù)
GLOBAL SUB update_roi()
local is_redraw,lv_i
SET_REDRAW '全局繪制
if ROI_flag=1 THEN
if mouse_scan(11) = 1 then '掃描鼠標(biāo)按下操作
hit_pos = ZV_HMIADJRECT(table(11), table(12), 25, -1) '獲取調(diào)整區(qū)域標(biāo)志
is_redraw = 1 '將繪圖標(biāo)志置1
endif
if mouse_scan(11) = -1 then '掃描鼠標(biāo)松開操作
ZV_HMIADJRECT(table(11), table(12), 25, hit_pos) '調(diào)整ROI的位置
is_redraw = 1 '將繪圖標(biāo)志置1
endif
if (MOUSE_state(11)) then
ZV_HMIADJRECT(table(11), table(12), 25, hit_pos) '調(diào)整ROI的位置
is_redraw = 1 '將繪圖標(biāo)志置1
endif
if (TABLE(25) >= 0) AND (TABLE(27) <= and="">= 0) AND (TABLE(28) <= HMI_CONTROLSIZEY(10,2))? THEN
TABLE(30) = TABLE(25) ' CX
TABLE(31) = TABLE(26) ' CY
TABLE(32) = TABLE(27) ' Width
TABLE(33) = TABLE(28) ' Height
ELSEIF (TABLE(25) < 0) OR (table(27) > HMI_CONTROLSIZEX(10,2)) OR (table(26) < 0) OR (table(28) > HMI_CONTROLSIZEY(10,2)) THEN
TABLE(25) = TABLE(30)
TABLE(26) = TABLE(31)
TABLE(27) = TABLE(32)
TABLE(28) = TABLE(33)
endif
if (1 = is_redraw) then
is_redraw = 0 '將繪圖標(biāo)志置0
ZV_POSTOIMG(0, 2, 25, 15)'將ROI的控件坐標(biāo)數(shù)據(jù)轉(zhuǎn)到圖像坐標(biāo)數(shù)據(jù)
d_roi_rect(0) = TABLE(15)'將ROI的圖像坐標(biāo)數(shù)據(jù)賦值給定義的變量
d_roi_rect(1) = TABLE(16)
d_roi_rect(2) = table(17)
d_roi_rect(3) = table(18)
SET_REDRAW '全局繪制
endif
endif
ENDSUB
'ROI區(qū)域更新后實(shí)時繪制ROI區(qū)域
GLOBAL SUB draw_roi()
if ROI_flag= 1 THEN
SET_COLOR(rgb(0,255,0)) '設(shè)置繪制時畫筆的顏色為綠色
'繪制矩形
DRAWRECT(table(25),table(26),table(27),table(28))
'繪制十字標(biāo)
DRAWLINE((table(25)+table(27))/2-5,(table(28)+table(26))/2,(table(25)+table(27))/2+5,(table(28)+table(26))/2)
DRAWLINE((table(25)+table(27))/2,(table(28)+table(26))/2-5,(table(25)+table(27))/2,(table(28)+table(26))/2+5)
endif
END SUB
本次,正運(yùn)動技術(shù)【機(jī)器視覺運(yùn)動控制一體機(jī)小課堂】三分鐘對圖像進(jìn)行ROI創(chuàng)建,就分享到這里。
審核編輯:湯梓紅
-
機(jī)器視覺
+關(guān)注
關(guān)注
163文章
4518瀏覽量
122438 -
一體機(jī)
+關(guān)注
關(guān)注
0文章
1123瀏覽量
33300 -
運(yùn)動控制
+關(guān)注
關(guān)注
4文章
642瀏覽量
33424
發(fā)布評論請先 登錄
工業(yè)一體機(jī)應(yīng)用在機(jī)器視覺領(lǐng)域上都有哪些常見性能優(yōu)勢?

觸控一體機(jī)與毛絨玩具的聯(lián)動,也太可愛了吧 # 觸控一體機(jī)# 瑞芯微# RK3568 #工控一體機(jī) #聯(lián)動

DELTA并聯(lián)機(jī)械手視覺方案榮獲2024年度機(jī)器人應(yīng)用典型案例獎 #正運(yùn)動技術(shù) #機(jī)器視覺運(yùn)動控制一體機(jī)

瑞迅科技瑞芯微RK3588系列工控一體機(jī),CPU強(qiáng)大,6TOPS算力的高性能神經(jīng)網(wǎng)絡(luò)處理器單元 #工控一體機(jī)
機(jī)器視覺運(yùn)動控制一體機(jī)在DELTA并聯(lián)機(jī)械手視覺上下料應(yīng)用


機(jī)器視覺運(yùn)動控制一體機(jī)在DELTA并聯(lián)機(jī)械手視覺上下料的應(yīng)用#機(jī)器視覺運(yùn)動控制一體機(jī)
聚徽-工控一體機(jī)有什么創(chuàng)新
聚徽-觸摸一體機(jī)包含哪些產(chǎn)品
藍(lán)海華騰參股公司頂控科技發(fā)布運(yùn)動控制一體機(jī)系列產(chǎn)品
機(jī)器視覺運(yùn)動控制一體機(jī)VPLC532E在汽車膠帶纏繞的開放式CNC應(yīng)用

評論