在线免费观看成年人视频-在线免费观看国产-在线免费观看国产精品-在线免费观看黄网站-在线免费观看精品

產(chǎn)品分類

當前位置: 首頁 > 工業(yè)電氣產(chǎn)品 > 端子與連接器 > 線路板連接器 > FFC連接器

類型分類:
科普知識
數(shù)據(jù)分類:
FFC連接器

機器視覺運動控制一體機應(yīng)用例程-多目標形狀匹配

發(fā)布日期:2022-04-25 點擊率:54

  • 關(guān)鍵詞:正運動技術(shù),機器視覺,運動控制器


  • 摘要:我們在前面的基于形狀匹配的視覺定位課程中,講述了形狀匹配的基本原理、應(yīng)用場景以及使用ZDevelop軟件實現(xiàn)形狀匹配功能的方法。但在課程演示的程序示例中,只輸出了一個匹配目標的結(jié)果,本節(jié)課程我們將對該程序的功能進行擴展,講解如何實現(xiàn)多目標形狀匹配功能。


image.png


我們在前面的基于形狀匹配的視覺定位課程中,講述了形狀匹配的基本原理、應(yīng)用場景以及使用ZDevelop軟件實現(xiàn)形狀匹配功能的方法。但在課程演示的程序示例中,只輸出了一個匹配目標的結(jié)果,本節(jié)課程我們將對該程序的功能進行擴展,講解如何實現(xiàn)多目標形狀匹配功能。


基于形狀匹配的視覺定位課程內(nèi)容,可關(guān)注“正運動小助手”公眾號,查看相關(guān)推文:


一檢測原理


多目標形狀匹配的檢測原理和形狀匹配的檢測原理是一致的。


形狀匹配算法是基于特征相關(guān)的匹配算法,其核心思想就是將模板圖像在待檢測圖像中滑窗搜索,計算出模板圖像在待匹配圖像中各位置的相似度量值。



image.png


二應(yīng)用場景


1.多目標定位

檢測視野上有(隨機)多個固定形狀特征的待測目標,需要輸出目標的位置信息。

2.多目標位置跟隨

當需要檢測的多個目標位置不固定時,一些檢測功能的ROI位置無法確定如檢測直線、檢測圓形等,我們可以利用檢測目標周邊有固定距離的特征進行位置跟隨。


三軟件演示


image.png


(一)多目標形狀匹配功能實例演示

檢測要求:在“基于形狀匹配的視覺定位”的程序上增加獲取多個目標結(jié)果的功能。


1.打開ZDevelop軟件:點擊[文件]→[打開項目]→選擇“基于形狀匹配的視覺定位”項目。


2.修改設(shè)計主運行界面。


image.png


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)主運行界面值顯示控件變量。

image.png


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


image.png


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

image.png

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

(二)仿真演示效果


image.png

image.pngimage.png

image.png


本次,正運動技術(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)機器視

推薦產(chǎn)品

更多