當前位置: 首頁 > 工業(yè)電氣產(chǎn)品 > 端子與連接器 > 線路板連接器 > FFC連接器
發(fā)布日期:2022-04-25 點擊率:54
關(guān)鍵詞:正運動技術(shù),機器視覺,運動控制器
摘要:我們在前面的基于形狀匹配的視覺定位課程中,講述了形狀匹配的基本原理、應(yīng)用場景以及使用ZDevelop軟件實現(xiàn)形狀匹配功能的方法。但在課程演示的程序示例中,只輸出了一個匹配目標的結(jié)果,本節(jié)課程我們將對該程序的功能進行擴展,講解如何實現(xiàn)多目標形狀匹配功能。
我們在前面的基于形狀匹配的視覺定位課程中,講述了形狀匹配的基本原理、應(yīng)用場景以及使用ZDevelop軟件實現(xiàn)形狀匹配功能的方法。但在課程演示的程序示例中,只輸出了一個匹配目標的結(jié)果,本節(jié)課程我們將對該程序的功能進行擴展,講解如何實現(xiàn)多目標形狀匹配功能。
基于形狀匹配的視覺定位課程內(nèi)容,可關(guān)注“正運動小助手”公眾號,查看相關(guān)推文:
一檢測原理
多目標形狀匹配的檢測原理和形狀匹配的檢測原理是一致的。
形狀匹配算法是基于特征相關(guān)的匹配算法,其核心思想就是將模板圖像在待檢測圖像中滑窗搜索,計算出模板圖像在待匹配圖像中各位置的相似度量值。
二應(yīng)用場景
1.多目標定位
檢測視野上有(隨機)多個固定形狀特征的待測目標,需要輸出目標的位置信息。
2.多目標位置跟隨
當需要檢測的多個目標位置不固定時,一些檢測功能的ROI位置無法確定如檢測直線、檢測圓形等,我們可以利用檢測目標周邊有固定距離的特征進行位置跟隨。
三軟件演示
(一)多目標形狀匹配功能實例演示
檢測要求:在“基于形狀匹配的視覺定位”的程序上增加獲取多個目標結(jié)果的功能。
1.打開ZDevelop軟件:點擊[文件]→[打開項目]→選擇“基于形狀匹配的視覺定位”項目。
2.修改設(shè)計主運行界面。
3.在global_variable.bas文件中修改并增加定義的全局變量。
增加定義全局變量:
'匹配結(jié)果,score、x、y、angle、scale
GLOBAL DIM d_match_rst(500)
GLOBAL DIM id
id=0
4.在InitLocator.bas文件中初始化增加的全局變量。
增加初始化結(jié)果變量:
'初始化匹配定位結(jié)果
for i=0 to 499
d_match_rst(i) = 0
next
5.關(guān)聯(lián)主運行界面值顯示控件變量。
6.在camera.bas文件中修改主運行界面按下【單次采集】按鈕響應(yīng)的函數(shù)。
'主界面按下單次采集按鈕執(zhí)行的函數(shù)
GLOBAL SUB btn_grab()
'如果d_use_imgfile=1時使用讀取本地圖片功能,使用控制器時請將此部分代碼注釋掉
if (d_use_imgfile=1) then
if(d_index=3) then
d_index=0
endif
File_Name="多目標匹配"+TOSTR(d_index,1,0)+".bmp" '...flash多目標匹配目錄下的圖片所在的路徑名稱
ZV_IMGREAD(grabImg,File_Name,0)
ZV_LATCH(grabImg, 0)
d_index=d_index+1
return
endif
''讀取本地圖片功能結(jié)束
'如果相機數(shù)量為0,提示先掃描相機,并退出子函數(shù)不往下執(zhí)行
if cam_num = 0 then
?"請先掃描相機!"
return
endif
CAM_SETPARAM("TriggerSoftware", 0) '發(fā)送觸發(fā)指令
CAM_GET(grabImg, 0) '獲取一幀圖像存放到grabImg變量中
ZV_LATCH(grabImg, 0) '將圖像顯示到鎖存通道0中
END SUB
7.在main.bas文件中添加主運行界面按下【上一頁】按鈕時響應(yīng)的函數(shù)并關(guān)聯(lián)動作函數(shù)名。
'主界面點擊上一頁按鈕時響應(yīng)的函數(shù)
GLOBAL SUB btn_UpPage()
id=id-1 'id變量自減1
if id<0 then '如果id變量<0
id =0 'id=0
endif
END SUB
8.在main.bas文件中添加主運行界面按下【下一頁】按鈕時響應(yīng)的函數(shù)并關(guān)聯(lián)動作函數(shù)名。
'主界面點擊下一頁按鈕時響應(yīng)的函數(shù)
GLOBAL SUB btn_DownPage()
id=id+1
if(id=12) then
id=11
endif
END SUB
9.在main.bas文件中修改創(chuàng)建模板界面按下【測試】按鈕時響應(yīng)的函數(shù)。
'創(chuàng)建模板界面按下測試按鈕時響應(yīng)的函數(shù)
GLOBAL SUB btn_loc_test()
if (d_is_creModel = 0) then '如果創(chuàng)建模板標志=0
?"未創(chuàng)建模板!" '提示未創(chuàng)建模板毛病返回子函數(shù)不往下執(zhí)行
return
endif
'開始匹配
TICKS = 0 '開始計時
for i=0 to 499
d_match_rst(i) = 0
next
table(0)=0
ZVOBJECT match_rst, sImg, colorImg
'對圖像進行3*3高斯平滑處理,處理后的圖像輸出到sImg變量中
ZV_GAUSSBLUR(grabImg, sImg, 3)
'根據(jù)模板子圖像和搜索參數(shù)進行目標匹配,并將匹配結(jié)果存放到match_rst矩陣中
ZV_SHAPEFIND(s_mod, sImg, match_rst, d_match_param(0), d_match_param(1), d_match_param(2), d_match_param(3), d_match_param(4), d_match_param(5), d_match_param(6))
ZV_MATINFO(match_rst, 0) '獲取矩陣結(jié)果信息。并存放到起始地址為0的table數(shù)組中
ZV_GRAYTORGB(sImg, colorImg) '灰度圖轉(zhuǎn)換到RGB圖,作為匹配結(jié)果圖像
if TABLE(0) > 0 then '如果匹配到目標
local rowr
for rowr = 0 to TABLE(0)-1
'獲取match_rst矩陣中第rowr行的數(shù)據(jù)存放到起始地址為3的table數(shù)組中,table最大長度5
ZV_MATGETROW(match_rst, rowr, 5, 3)
'
d_match_rst(rowr*5+0) = TABLE(3) '將匹配結(jié)果賦值給定義的結(jié)果變量,顯示到界面
d_match_rst(rowr*5+1) = TABLE(4)
d_match_rst(rowr*5+2) = TABLE(5)
d_match_rst(rowr*5+3) = TABLE(6)
d_match_rst(rowr*5+4) = TABLE(7)
'計算剛性變換矩陣
ZV_GETRIGIDVECTOR(mat_rigid1, 0, 0, 0, TABLE(4), TABLE(5), TABLE(6))
'對輪廓或輪廓序列進行仿射變換
ZV_ConTAFFINE(contlist1, mat_rigid1, tsContlist1)
'在colorSubImg圖像上繪制綠色的輪廓序列
ZV_ConTLIST(colorImg, tsContlist1, ZV_COLOR(0, 255, 0), 0)
'在匹配目標上繪制對應(yīng)的編號,以便和輸出結(jié)果信息相對應(yīng)
ZV_TEXT(colorImg, TOSTR(rowr+1,1,0),TABLE(4),TABLE(5),60,ZV_COLOR(0, 255, 0))
'
next
else '未匹配到目標時,將結(jié)果賦值為-1
for i=0 to 499
d_match_rst(i) = -1
next
endif
d_match_time = abs(TICKS) '計算匹配消耗時間
ZV_LATCH(colorImg, 0) '顯示匹配結(jié)果圖像
END SUB
(二)仿真演示效果
本次,正運動技術(shù)VPLC系列機器視覺運動控制一體機應(yīng)用例程(一)——多目標形狀匹配功能,就分享到這里。
更多精彩內(nèi)容請關(guān)注“正運動小助手”公眾號,需要相關(guān)開發(fā)環(huán)境與例程代碼,請咨詢正運動技術(shù)銷售工程師:400-089-8936。
本文由正運動技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學習,一起提高中國智能制造水平。文章版權(quán)歸正運動技術(shù)所有,如有轉(zhuǎn)載請注明文章來源。
下一篇: PLC、DCS、FCS三大控
上一篇: 會PLC也能玩轉(zhuǎn)機器視