影像擷取

何時需要擷取影像?

許多視覺系統需要您指定一個特殊的命令或步驟,以取得要處理的影像。影像是在視覺序列開始時擷取的,故Vision Guide 8.0可協助免除此額外步驟。
通常您只需要為RuntimeAcquire屬性指定適當的設定值即可。在大部份的應用中,您甚至完全不需要設定RuntimeAcquire屬性,因為其預設為Stationary。這代表將會在開始執行視覺序列時取得影像。還有其他用來設定如何取得影像的序列屬性。

對多個視覺序列使用相同影像

若您想要對兩個以上的視覺序列使用相同影像,您只需要將第一個視覺序列的RuntimeAcquire屬性設定為Stationary,並將其他視覺序列的RuntimeAcquire屬性設定為None即可。將其他視覺序列的RuntimeAcquire屬性設定為None後,將會使該序列無法擷取其他影像,因此所有處理都會以從第1個視覺序列所取得的影像完成。

使用影像緩衝區

每部攝影機有一個影像緩衝區(buffer 0),10個影像緩衝區可在序列之間共用(buffers1 至 10)。
設定ImageBuffer序列屬性以指定要使用哪個緩衝區。預設緩衝區為0。您可以使用影像緩衝區,來擷取數個影像並將其儲存在記憶體中,之後再加以處理。
例如,您可以建立一個不含任何物件的序列,且該序列可將影像擷取至多個緩衝區,然後在其他序列中處理影像。

  ' seq1沒有物件 – 用於抓取影像至多重緩衝區中  
  VSet seq1.RuntimeAcquire, VISION_ACQUIRE_STATIONARY  
  VSet seq1.ImageBuffer, 1  
  VRun seq1 ' 抓取影像至緩衝區1  
  Go Image2Pos  
  VSet seq1.ImageBuffer, 2  
  VRun seq1 ' 抓取影像至緩衝區2  
  Go Image3Pos  
  VSet seq1.ImageBuffer, 3  
  VRun seq1 ' 抓取影像至緩衝區3  
  ...  
  ' 現在開始處理先前所抓取的影像  
  VSet seq2.RuntimeAcquire, VISION_ACQUIRE_NONE  
  VSet seq2.ImageBuffer, 1  
  VRun seq2 ' 處理緩衝區1中的影像1  
  VGet seq2.AllPassed, allPassed  
  ...  

在為不擷取影像(僅處理)的序列使用影像緩衝區1 – 10時,會在VRun過程中忽略Camera屬性值。

使用外部觸發影像取得

Vision Guide 8.0支援觸發輸入,可讓視覺序列取得影像並透過外部訊號搜尋。若想使用觸發輸入,請依下列步驟操作:
將觸發訊號連線至攝影機接頭。如果您也使用閃光燈,您可連線至攝影機的閃光輸出訊號。
設定序列的RuntimeAcquire屬性,將觸發輸入用於Strobed。
在您的SPEL+程式中,以一般正常方式執行VRun,然後等候AcquireState屬性的值變更為3,代表影像取得已完成。在本實例中,觸發是由外部裝置提供訊號的。

Integer state  
Boolean found  
  
#define PICTURE_DONE 3  
TmReset 0  
VRun seq1  
Do  
  Wait 0.01  
  VGet seq1.AcquireState, state  
  If Tmr(0) > 10 Then  
    Error ER_STROBE_OT  ' User defined overtime error  
  EndIf  
Loop Until state = PICTURE_DONE  
VGet seq1.obj1.Found, found  
  • 若您並未透過檢查AcquireState來等待影像的擷取,那麼工作中的下一個視覺命令會在執行之前,自動等候影像的取得。在這種情況下,必須先取得影像之後才可繼續處理,或者您可以中止工作。建議您檢查 AcquireState,以便程式能在觸發器未觸動且未擷取影像時繼續處理。
  • 當您從Vision Guide 8.0 GUI使用觸發輸入執行序列時,系統將會等候至觸發輸入為止。您可以按一下[Abort]按鈕以中止。

注意


環境照明及外部設備雜訊可能會影響視覺序列影像及結果。可能會取得毀損的影像,且偵測到的位置可能是物件的搜尋區域中的任何位置。建立影像處理序列,所使用的物件務必要使用必要值以下的搜尋區域。

處理色彩

若設定彩色攝影機,您就可以從磁碟取得彩色影像或載入彩色影像。
某些視覺工具可以處理彩色影像,而其他工具只能處理灰階影像,如下列表格所示。

視覺工具 彩色處理 灰階處理
Blob
Correlation
Geometric
Edge
Polar
Code Reader
OCR
ImageOp
ColorMatch
LineFinder
LineInspector
ArcFinder
ArcInspector
DefectFinder
BoxFinder
CornerFinder
Contour

ImageOp 工具含有會處理色彩影像的 ColorFilter 運算及 ColorStretch 運算。所有其他ImageOp操作則使用灰階影像。
ColorMatch工具通常用來處理彩色影像,但也可以用在灰階影像上,使用不同灰色層級的色彩。
在取得一個彩色影像時,也會建立一個內部灰階影像,以供需要灰階影像的工具使用。在執行一個序列時,執行彩色處理的物件會使用彩色影像,而執行灰階處理的物件則會使用灰階影像。
彩色影像是由三種色頻組成:紅、綠和藍。使用ImageColor序列屬性來選擇想要取得的色頻。預設設定為All,這代表會使用所有三個色頻擷取完整彩色影像。
您也可以選擇紅色、綠色、藍色或灰階。在選擇紅色、綠色、藍色時,會從彩色黑白影像得出灰階影像。可讓您搜尋一組含有灰階處理工具的色彩橫紋。
若您在Vision Guide視窗的[Run Object]按鈕上按一下,而目前的物件為灰階處理工具,那麼視訊影像就會以灰階顯示,而工具在處理過程中也會看到視訊為灰階。