超碰激情 I 成人福利网站 I 淫国产 I 曰批视频免费30分钟成人 I 刘亦菲裸体视频一区二区三区 I 午夜久 I 尤物综合 I 亚洲一区av在线观看 I 欧美亚洲国产精品久久高清 I 欧美老熟妇乱子伦视频 I 无码中出人妻中文字幕av I 久久美女福利视频 I 精品无人区乱码1区2区3区在线 I 性饥渴的农村熟妇 I 色综合综合色 I 少妇人妻88久久中文字幕 I 久久夜色精品国产噜噜av I 老熟妇仑乱视频一区二区 I 男女做爰猛烈叫床视频动态图 I 日本大片一区二区 I 人成午夜免费视频在线观看 I 激情婷婷av I 男女下面一进一出免费视频网站 I 久久影视一区 I 午夜污网站 I 先锋人妻无码av电影 I 久久久久久久岛国免费网站 I 又粗又大又黄又硬又爽免费看 I 人妻无码免费一区二区三区 I www.色成人100 I 欧美高清网站 I 精品国产第一页 I 国产suv一区二区三区88区 I 橹图极品美女无圣光 I 午夜宅男欧美

產品分類

當前位置: 首頁 > 工業電氣產品 > 端子與連接器 > 線路板連接器 > FFC連接器

類型分類:
科普知識
數據分類:
FFC連接器

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

發布日期:2022-04-25 點擊率:64

  • 關鍵詞:正運動技術,機器視覺,運動控制器


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


image.png


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


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


一檢測原理


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


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



image.png


二應用場景


1.多目標定位

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

2.多目標位置跟隨

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


三軟件演示


image.png


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

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


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


2.修改設計主運行界面。


image.png


3.在global_variable.bas文件中修改并增加定義的全局變量。


增加定義全局變量:

'匹配結果,score、x、y、angle、scale

GLOBAL DIM d_match_rst(500)


GLOBAL DIM id 

id=0

4.在InitLocator.bas文件中初始化增加的全局變量。


增加初始化結果變量:

               '初始化匹配定位結果

  for i=0 to 499

  d_match_rst(i) = 0          

  next  

5.關聯主運行界面值顯示控件變量。

image.png


6.在camera.bas文件中修改主運行界面按下【單次采集】按鈕響應的函數。


'主界面按下單次采集按鈕執行的函數

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

  ''讀取本地圖片功能結束

  

  '如果相機數量為0,提示先掃描相機,并退出子函數不往下執行

      if cam_num = 0   then 

          ?"請先掃描相機!"

      return 

      endif

    

      CAM_SETPARAM("TriggerSoftware", 0)  '發送觸發指令

      CAM_GET(grabImg, 0)                 '獲取一幀圖像存放到grabImg變量中

      ZV_LATCH(grabImg, 0)                '將圖像顯示到鎖存通道0中

  

END SUB

7.在main.bas文件中添加主運行界面按下【上一頁】按鈕時響應的函數并關聯動作函數名。


'主界面點擊上一頁按鈕時響應的函數

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文件中添加主運行界面按下【下一頁】按鈕時響應的函數并關聯動作函數名。


'主界面點擊下一頁按鈕時響應的函數

GLOBAL SUB btn_DownPage()

    id=id+1

    if(id=12) then 

        id=11

    endif  

  

END SUB

image.png

9.在main.bas文件中修改創建模板界面按下【測試】按鈕時響應的函數。


'創建模板界面按下測試按鈕時響應的函數

GLOBAL SUB btn_loc_test()

    if (d_is_creModel = 0) then '如果創建模板標志=0

        ?"未創建模板!"          '提示未創建模板毛病返回子函數不往下執行

        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)

    '根據模板子圖像和搜索參數進行目標匹配,并將匹配結果存放到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)     '獲取矩陣結果信息。并存放到起始地址為0的table數組中

    ZV_GRAYTORGB(sImg, colorImg) '灰度圖轉換到RGB圖,作為匹配結果圖像

    

    if TABLE(0) > 0 then         '如果匹配到目標

        local rowr

        for rowr = 0 to TABLE(0)-1

            '獲取match_rst矩陣中第rowr行的數據存放到起始地址為3的table數組中,table最大長度5

          ZV_MATGETROW(match_rst, rowr, 5, 3)  

    

    '      

            d_match_rst(rowr*5+0) = TABLE(3)          '將匹配結果賦值給定義的結果變量,顯示到界面

            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)

            '在匹配目標上繪制對應的編號,以便和輸出結果信息相對應

                    ZV_TEXT(colorImg, TOSTR(rowr+1,1,0),TABLE(4),TABLE(5),60,ZV_COLOR(0, 255, 0))

    '      

        next

      else '未匹配到目標時,將結果賦值為-1

           for i=0 to 499

             d_match_rst(i) = -1          

           next 

      endif

      

      d_match_time = abs(TICKS) '計算匹配消耗時間

      ZV_LATCH(colorImg, 0)     '顯示匹配結果圖像

  

END SUB

(二)仿真演示效果


image.png

image.pngimage.png

image.png


本次,正運動技術VPLC系列機器視覺運動控制一體機應用例程(一)——多目標形狀匹配功能,就分享到這里。


更多精彩內容請關注“正運動小助手”公眾號,需要相關開發環境與例程代碼,請咨詢正運動技術銷售工程師:400-089-8936。


本文由正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。


下一篇: PLC、DCS、FCS三大控

上一篇: 會PLC也能玩轉機器視

推薦產品

更多