NumberToFind屬性

套用至
視覺物件:ArcInspector, Blob, CodeReader, Contour, Correlation, DefectFinder, Edge, Geometric, LineInspector

說明
定義在單一搜尋視窗內搜尋的特徵數量。

用途

VGet  Sequence.Object.NumberToFind, var
VSet  Sequence.Object.NumberToFind, value
Sequence
序列名稱或表示序列名稱的字串變數
Object
物件名稱或表示物件名稱的字串變數。物件必須存在於指定序列中。
var
表示屬性值的整數變數
value
表示新屬性值的整數或運算式

數值
輸入值的有效範圍為0(全部)至各物件可檢測出的最大數量(詳情參閱詳細說明)。

預設:

  • 0 - All(Contour物件),
  • 1(其他物件)

詳細說明
ArcInspector、Blob、Correlation、DefectFinder、Edge、Geometric及LineInspector物件支援在單一搜尋視窗內尋找多項特徵。NumberToFind屬性會定義需求數量。

由於許多應用項目僅要求在搜尋視窗內找到1項特徵,因此除了Contour物件以外,NumberToFind屬性的預設值為1。

在Vision Guide開發環境中操作時,您將會注意到物件視窗的結果列表會顯示標題,如「結果(1/15)」。這表示系統已嘗試尋找15個特徵(如NumberToFind屬性所定義),且結果列表將會顯示項目1的結果。

若要查看其他結果,只要將CurrentResult屬性值變更為要檢查的結果值即可。

Blob結果會依照SizeToFind及Sort屬性值排序。

若NumberToFind設為「0 - All」,則會找到所有可能的結果,直到數量到達最大偵測數。最大偵測數會視各物件而異。如下所示。

物件名稱 最大偵測數
CodeReader 8
Contour 1000
Blob, Edge 4000
其他 100

Sort設為“None”時,Correlation及Geometric結果會依照Score結果的高低,由高至低排序。(即結果記錄1(CurrentResult = 1)含有具最高分數的特徵結果。)

參考
ArcInspector物件、Blob物件、Contour物件、Correlation物件、CurrentResult屬性、DefectFinder物件、Edge物件、Found結果、Geometric物件、LineInspector物件、NumberFound結果

範例
下列SPEL+語言範例執行mtest視覺序列,該序列包含名為Corr01的Correlation物件。使用VSet設定Corr01的NumberToFind值。

下列程式將會執行序列,並確保為Corr01找到正確的特徵數量(3),然後以遞減順序印出Score結果。

Function main

  # define NUM_TO_FIND 3
	
  Boolean numfound
  Integer score

  VSet mtest.Corr01.NumberToFind, NUM_TO_FIND
  VRun mtest
  VGet mtest.Corr01.NumberFound, numfound
  If numfound = NUM_TO_FIND Then
    Print "The Proper Number of features(3) were found"
  Else
    Print "Only (", numfound, ") features were found"
    Exit Function
  EndIf
  VGet mtest.Corr01.Score(1), score
  Print "1st feature score (Best):", score

  VGet mtest.Corr01.Score(2), score
  Print "2nd feature score (Medium):", score

  VGet mtest.Corr01.Score(3), score
  Print "3rd feature score (Worst):", score
Fend