<nobr id="zkazv"></nobr>

      午夜精品一区二区三区成人,中文字幕av一区二区,亚洲AVAV天堂AV在线网阿V,肥臀浪妇太爽了快点再快点,国产网友愉拍精品视频手机,国产精品无码a∨麻豆,久久中文字幕一区二区,a级国产乱理伦片在线观看al
      首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
      中華工控網首頁
        P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
        D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
        電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
      詳談機器視覺大師腳本編程
      深圳市精浦科技有限公司
      收藏本文     查看收藏

      機器視覺大師(MVS),一體式可編程機器視覺控制器(FVS), 可組態機器視覺控制器(EVS)都支持腳本編程。雖然機器視覺大師腳本編程最簡單,但是很多用戶普遍感覺好像很難入門,筆者將詳細介紹一下這些機器視覺大師的腳本編程原理和過程。

      機器視覺大師在自動檢測模式下,可以支持用戶腳本編程。為什么要這樣的功能呢?這需要簡單介紹一下機器視覺大師提供自動檢測功能的目的說起。

      機器視覺大師自動檢測功能主要用于開發全自動機器視覺自動化系統的前期實驗分析(圖形預處理,特征算法等)或桌面式半自動機器視覺應用。機器視覺在自動化領域的應用從軟件開發方面來講主要涉及圖像預處理,特征分析,模式識別算法等,實現工業領域常用的如定位,顏色區分,缺陷檢測,生產日期檢測或識別,條碼識別等。如果一個新的需求全部從頭開始開發的話,工作量十分巨大,而且需要開發人員既具有圖像處理方面的知識,也需要具備比較強的編程能力,一般來說,是非常困難的。

      機器視覺大師將圖像分析和常用的模式識別等算法完全封裝成檢測算子,采用可視化編輯的方式,用戶只需要動動鼠標扒拉幾下, 不到幾分鐘,一個機器視覺應用系統原型將很快建立起來。但是,由于應用的復雜化,機器視覺大師提供的算子可能不能完全適用用戶的實際需求。這就需要用戶進行最后的處理即腳本編程,來完成最終的目標。打個比喻來說,機器視覺大師就好比一個城市建立的地鐵系統,雖然方便快捷,但是最后一公里還需要一種交通工具如共享單車,才能使乘客很舒服地到達目的地。腳本編程好像是共享單車,雖然不是全自動的,需要用點力,但是操作實在是很簡單,只要掌握好方向盤,用力蹬就行了。

      機器視覺大師里面設計一個簡單的機器視覺或影像自動檢測應用,基本過程如下:

      言歸正傳,在機器視覺大師里面進行腳本編程其實也是很簡單的一件事。不像一些高級編程語言如c/c++,java, 網頁腳本php,這些語言功能較強,支持類,函數,事件等,需要掌握的知識點較多,學習起來比較復雜,漫長。機器視覺大師的腳本編程只需要掌握兩點:1. 理解和掌握對象和屬性的概念; 2.  理解和應用邏輯判斷和循環或順序執行。完全不需要自定義什么類,函數什么的。這些概念是所有編程語言里面最基本的內容。所以,別擔心,一切會是那么的簡單。

      對象模型

      在機器視覺大師里面,編程的時候一定是以對象為主。 頂層對象只有兩種,即視場對象和整個應用程序對象。 視場對象下面有算子對象,算子對象有讀數屬性(復合型讀數如點(x,y)也可以理解成對象)。不同的算子對象具有不同的讀數,有數據類,有文本類,或數組類。機器視覺大師里面的基本對象模型如下圖:

      應用程序對象根據當前的檢測任務的不同,具有不同的屬性(也稱變量)。視場對象即相機所能成像的范圍,表現為一個圖像,但實際編程時可能與圖像完全不搭邊,所以只要記住,當前PC系統有幾個相機,就可以理解有幾個視場對象。視場下面的算子的數量根據用戶自己實際添加的數量決定。

      在編程中,所有的對象均使用名稱標識,這些標識均系統已經自動命名, 應用程序對象的名字為mvs, 有且只有一個。視場對象的名字為sight, 后面緊接一個數字,表示不同的視場對象等等,如sight1。視場里面不同的算子分別有自己的名字,同類型的算子后面添加序號加以區分,與視場名字的命名規則差不多。

      使用的時候,對象一定是從最頂層對象開始,然后往下一層,再往下一層,直到屬性,不同的對象之間使用圓點”.”符號進行連接。例如,如果要獲得視場一(sight1)里面的雙態識別算子(dual1)的“檢測結果”讀數, 如:

      n = sight1.dual1.res

      算子對象的讀數在運行一次檢測以后,系統會自動給出結果,但是,應用程序對象的屬性很多情況下,需要用戶在腳本里面進行編程計算,如

      mvs.good = 1,

      這條語句將應用程序對象的good屬性設置為1.

      不同檢測算子可用讀數如下表(由于版本不斷變化,請使用實際名稱)

      檢測算子

      讀數名稱

      數據類型

      說明

      雙態檢測

      res-結果

      整數

      模板索引。如果為0表示第一個模板,如果為1表示第2個模板。

      定位

      count – 實例個數

      position –位置

      abspos –絕對位置

      offset – 偏移

      整數

      2D實數

      如果找到實例,返回1,否則返回0

      多態檢測

      result – 結果(最大分數的模板索引)

      count –已經學習的模板數

      pattname – 模板名稱或說明

      score – 當前識別的每個模板分數值

      整數

      整數

      文本

      實數

      多態檢測的識別結果為分數最高的模板索引。除非進行了實際的模板增或減操作,已經學習的模板數每次識別以后都不會變換。

      模板識別

      count – 實例個數

      position –位置

      angle – 角度

      整數

      實數

      一維碼

      count – 條碼個數

      content –條碼內容

      整數

      文本

      二維碼

      count – 條碼個數

      content –條碼內容

      整數

      文本

      BLOB分析

      count – blob個數

      offset – 偏移

      width – 寬度

      length – 長度

      centroid – 質心

      dens – 密度

      pixsum – 像素和

      pixavg – 像素平均

      pixvar—像素方差

      strength – 強度

      perim – 周長

      area – 面積

      circu --  圓度

      slant – 斜率

      rect – 外接矩形

      整數

      2D實數

      整數

      整數

      實數

      實數

      實數

      實數

      實數

      整數

      整數

      實數

      實數

      矩形

      文字識別

      content –字符內容

      文本

      顏色識別

      result – 結果

      整數

      返回顏色索引

      邊距測量

      result – 結果

      整數

      返回實際的長度,以像素為單位

      如果結果有多組相同屬性,那么該屬性即為屬性數組,需要使用數組的方式進行引用,如

        blob1.offset[1].x

      數組序號從1開始。 記住: 凡是有多組相同屬性的的算子,一般都會提供一個名稱類似“count”的讀數表示當前有多少組屬性。如:

        n = blob1.count

        m = pmat1.count

      萬一忘記某個算子的讀數,也可以在對應算子的參數設置窗口里面的讀數頁中得到,如下圖:

      邏輯判斷和條件執行

      機器視覺腳本編程機大部分上是對視場中算子的結果進行邏輯運行以后,然后對應用程序對象的相關屬性進行賦值的一個過程。這樣的簡單的方式,極大地增強軟件的功能,達到完全滿足用戶需求的目的。下面為腳本編輯的一般過程:

      出于簡單易用的考慮,機器視覺大師支持最基本的邏輯判斷表達式和條件執行語句。當然,最基本的賦值語句和算術表達式是必須支持的。語句不需要結束符如c語言中的”;”,但是需要使用空格隔開,出于可讀性考慮,建議一個語句使用一行,最好采用縮進結構。

      下表是邏輯運算表達式:

      邏輯運算符或關系運算符,算術運算符,括號等構成邏輯表達式,其結果只能為true(真)或false(假)。

      支持的邏輯或關系運算符如下:

      算符或關鍵詞

      說明

      類型

      and

      與,左右兩邊的表達式為true,結果才為true,否則為false

      邏輯運算符

      or

      或,左右兩邊的任意一個表達式為true,結果為true,否則為false

      邏輯運算符

      not

      非,如果右邊的表達式為true,結果為false。反之如果右邊的表達式為false,結果為true。

      邏輯運算符

      <

      小于,左邊的表達式值如果小于右邊的表達式值,結果為true,否則為false.

      關系運算符

      >

      大于,左邊的表達式值如果大于右邊的表達式值,結果為true,否則為false.

      關系運算符

      <=

      小于等于,左邊的表達式值如果小于等于右邊的表達式值,結果為true,否則為false.

      關系運算符

      >=

      大于等于,左邊的表達式值如果大于等于右邊的表達式值,結果為true,否則為false.

      關系運算符

      ==

      等于,左邊的表達式值如果等于右邊的表達式值,結果為true,否則為false.

      關系運算符

      ~=

      不等于,左邊的表達式值如果不等于右邊的表達式值,結果為true,否則為false.

      關系運算符

      算術表達式的算符如下:

      一個表達式可能由不同的類型的的表達式組成。這些表達式在計算的時候遵守一定的優先順序。運算符可以通過括號括起,括號里面的運算符號具有最高的優先級。當無括號的情況下,這些運算符的從高到低的優先順序如下:

      ^

      not,-

      *, /, %

      +, -

      <,  > , <=, >=, ==, ~=

      and

      or

      在機器視覺大師腳本里面可以隨意定義變量,這些變量不需要申明數據類型,直接將算術表達式或邏輯表達式賦值即可。變量的類型根據表達式的結果決定,可以是邏輯類,數值類或文本類。

      邏輯類的變量只能為true或 false, 文本類的內容需要用雙引號括起。如

      label = “hello, world”

           

             result = sight1.dual1.res == 0

             if  result == true then

                //do something

             end

      機器視覺大師可以運行不同種類的自動檢測任務。很多情況下,需要進行控制執行,對不同的屬性進行賦值,以獲得最終結果。機器視覺大師提供基本的控制關鍵詞如if, while, for等

      if then else

      if語句先測試其條件,然后根據測試結果執行then部分或者else部分,else部分是可選的。如果要編寫嵌套的if,可以使用elseif。如:

      示例一

      if a < 0 then

         a = 0

      end

      示例二

      if a < b then

         a =b

      else

         a = a+1

      end

      示例三

      if op == "+" then

          r = a + b

      elseif op == "-" then

          r = a – b

      end

      while

      while語句評估邏輯表達式的值,當結果為true的時候,執行程序塊。如:

      local a = 10
      while a > 0 do
            a = a - 1
      end

      for

      for語句將指定的變量進行遞增計算,循環一定次數。如:

      for i= 1, 100, 1 do

        # Do something
      end

      該段語句將反復執行程序段100次。在for語句里面,第一個數字為初始值,第二個數字為終止值,第三個數字為步長,通常情況下為1,如果為1的話,第三個數字可以省略。

      如果需要返回不再往下執行,可以使用return關鍵詞進行返回。跳出一些循環塊,可以使用break關鍵詞。如:

      for i= 1, 100, 1 do

               if i==50 then

                    break

               end

      end

      n = 100

      上面的語句段基本算法為當i等于50的時候,跳出循環,然后運行n=100語句。

      機器視覺大師支持不同的檢測任務類型,不同的檢測類型下,可用的應用程序屬性數量和含義是不一樣的。這些屬性如合格數,在檢測運行過程中將在結果顯示面板中被顯示出來。下表為支持的所有屬性(全局變量):

      名稱

      說明

      適用的檢測類型

      數據類型

      rd1

      讀數1

      常規檢測(默認)

      實數

      rd2

      讀數2

      常規檢測(默認)

      實數

      rd3

      讀數3

      常規檢測(默認)

      實數

      rd4

      讀數4

      常規檢測(默認)

      實數

      rd5

      讀數5

      常規檢測(默認)

      實數

      rd6

      讀數6

      常規檢測(默認)

      實數

      rd7

      讀數7

      常規檢測(默認)

      實數

      rd8

      讀數8

      常規檢測(默認)

      實數

      good

      合格品

      質量檢測

      布爾類整數,僅為1或0

      ng

      缺陷品

      質量檢測

      布爾類整數,僅為1或0

      count

      當前數

      產品計數

      整數(無小數部分)

      diff

      差數

      產品計數

      整數(無小數部分

      want

      目標數

      產品計數

      整數(無小數部分

      ms1

      測量到的實際值1

      尺寸測量

      實數

      ws1

      目標尺寸的標準值1

      尺寸測量

      實數

      dif1

      誤差1

      尺寸測量

      實數

      ms2

      測量到的實際值2

      尺寸測量

      實數

      ws2

      目標尺寸的標準值2

      尺寸測量

      實數

      dif2

      誤差2

      尺寸測量

      實數

      ms3

      測量到的實際值3

      尺寸測量

      實數

      ws3

      目標尺寸的標準值3

      尺寸測量

      實數

      dif3

      誤差3

      尺寸測量

      實數

      ms4

      測量到的實際值4

      尺寸測量

      實數

      ws4

      目標尺寸的標準值4

      尺寸測量

      實數

      dif4

      誤差4

      尺寸測量

      實數

      最后,以一個實際檢測的一個腳本結束本文。如下:

      cnt =  sight2.blob1.cnt

      if  cnt  ~= 5 then

          mvs.good = 0

          mvs.ng =1

          return

      end

      for i=1,5 do

         if sight2.blob1.w[i] <25 then

                 mvs.good = 0

                 mvs.ng =1

                 return

        end

          if sight2.blob1.h[i] <12 then

                 mvs.good = 0

                 mvs.ng =1

                 return

        end

      end

      mvs.good =1

      mvs.ng =0

      這個腳本算法解釋如下:如果sight2中的blob1的個數不是5個,那么將good設置為0,ng屬性設置為1后,直接返回。否則,逐個判斷其高度或寬度,如果不合格則進行相應處理,然后返回。當所有的blob寬度和高度完全合格以后,將good設為1,ng設為0,然后返回。


       

      狀 態: 離線

      公司簡介
      產品目錄

      公司名稱: 深圳市精浦科技有限公司
      聯 系 人: 陳依貝
      電  話: 0755-18820464628
      傳  真: 0755—86062046
      地  址: 深圳市南山區桃園路193號
      郵  編: 518057
      主  頁:
       
      該廠商相關技術文摘:
      視頻監控工件螺絲是否正確鎖住
      更多文摘...
      立即發送詢問信息在線聯系該技術文摘廠商:
      用戶名: 密碼: 免費注冊為中華工控網會員
      請留下您的有效聯系方式,以方便我們及時與您聯絡

      關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 不良信息舉報
      工控網客服熱線:0755-86369299
      版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved

      主站蜘蛛池模板: 最新国产精品亚洲| 国产精品中文字幕第一页| 激情综合网五月激情五月| 在线中文字幕国产一区| 永久免费无码成人网站| 人妻另类 专区 欧美 制服| 九九热视频在线免费观看| 色伦专区97中文字幕| 久久一级精品久熟女人妻| 免费 黄 色 人成 视频 在 线| 蜜桃视频在线免费观看一区二区| 果冻传媒一区二区天美传媒| 亚洲天堂伊人久久a成人| 十八禁午夜福利免费网站| 国内免费视频成人精品| 日本深夜福利在线观看| 少妇和邻居做不戴套视频| 午夜免费无码福利视频麻豆| 国产精品成人午夜久久| 中文字幕精品亚洲二区| 宝贝腿开大点我添添公口述视频| 亚洲av二区国产精品| 精品精品国产国产自在线| 亚洲国产精品一二三四区| 国产精品综合av一区二区| 久久热这里只有精品国产| 加勒比无码人妻东京热| 日韩区二区三区中文字幕| 国产永久免费高清在线观看 | 国产果冻豆传媒麻婆精东| 久久精品蜜芽亚洲国产av| 久久国产免费直播| 精品一区二区中文字幕| 精品亚洲香蕉久久综合网| 18禁无遮挡啪啪无码网站破解版| 国产香蕉久久精品综合网| 国产亚洲精品AA片在线爽| 亚洲精品国产精品不乱码| 手机看片日本在线观看视频| 日韩一区二区三区日韩精品| 久久婷婷大香萑太香蕉AV人|