CurrentResult プロパティー
適用
ビジョンオブジェクト: ArcFinder、ArcInspector、Blob、BoxFinder、CodeReader、ColorMatch、Contour、Coordinates、CornerFinder、Correlation、DefectFinder、Edge、Frame、Geometric、Line、LineFinder、LineInspector、OCR、Polar、Point、Text
解説
オブジェクトウィンドウのリザルトリストに表示するリザルト、または、複数のリザルトを検出するデータを返すリザルトを定義します。
用法
VGet Sequence.Object.CurrentResult, var
VSet Sequence.Object.CurrentResult, value
- Sequence
- シーケンス名かシーケンス名を示す文字列変数
- Object
- オブジェクト名かオブジェクト名を示す文字列変数。オブジェクトは指定されたシーケンスに存在していなければなりません。
- var
- プロパティーの値を示す整数変数
- value
- プロパティーの新しい値を示す整数または式
値
有効範囲:1からNumberOfResutsプロパティーの値
デフォルト: 1
詳細説明
各オブジェクトは、NumberToFindプロパティーを1以上の同じ値に設定することで複数のリザルト検出をサポートしています。CurrentResultプロパティーは、その複数検出された中でどのリザルトを使うか定義します。
検出したいリザルトが1個の場合は(NumberToFindプロパティーで設定した値が「1」の場合は)、CurrentResultプロパティーは、自動的に「1」に設定されます。
Vision Guideウィンドウで使っているときは、オブジェクトウィンドウのリザルトリストに「検出結果1/15」といった表示が出てきます。それは、システムが(NumberToFindプロパティーの設定に従って)15の対象物を検出しようとし、そのうちの1アイテムに対するリザルトをリザルトリストに表示していることを意味します。
他のリザルトを見たい場合は、CurrentResultプロパティーの値を、チェックしたいリザルトに変更します。
リザルトは、Sortプロパティーの設定にしたがって並べられます。
ArcInspector、Blob、DefectFinder、LineInspectorオブジェクトのリザルトは、SizeToFindにより、デフォルトで大きいブローブから小さいブローブの順番で表示されます。Result 1 (CurrentResult = 1)には一番大きいブローブのリザルトが表示されます。
Correlationオブジェクト、Edge、Geometricオブジェクトのリザルトは、デフォルトでスコアの高い順に表示されます。Result 1 (CurrentResult = 1)には、スコアがもっとも高い対象物のリザルトを表示します。
参照
ArcFinderオブジェクト, ArcInspectorオブジェクト, Blobオブジェクト, Correlationオブジェクト, DefectFinderオブジェクト, Edgeオブジェクト, Found リザルト, Geometricオブジェクト, OCRオブジェクトBoxFinderオブジェクト, Contourオブジェクト, CornerFinderオブジェクト, Textオブジェクト, Coordinatesオブジェクト, NumberToFind プロパティー, NumberFound リザルト, Sort プロパティー
使用例
下記はSPEL+言語を使って、"Blob01"という名前のBlobオブジェクトを示す、"mtest"というビジョンシーケンスを実行する例です。"Blob01" は、1回のサーチウィンドウで複数(3つ)のブローブを検出するよう定義されています。(mtest.Blob01.NumberToFind = 3)
下記プログラムは、シーケンスを実行し、"Blob01" に対して適正な数(3)の対象物が検出されたか確認し、その後Areaリザルトを降順に出力します。
Function main
# define NUM_TO_FIND 3
Integer foundCount, area
VRun mtest
VGet mtest.Blob01.NumberFound, foundCount
If foundCount = NUM_TO_FIND Then
Print "The correct number of blobs were found"
Else
Print "Only (", found, ") blobs were found"
EndIf
VSet mtest.Blob01.CurrentResult, 1
VGet mtest.BLOB01.Area, area
Print "1st blob area =", area, "pixels"
VSet mtest.Blob01.CurrentResult, 2
VGet mtest.Blob01.Area, area
Print "2nd blob area =", area, "pixels"
VSet mtest.Blob01.CurrentResult, 3
VGet mtest.Blob01.Area, area
Print "3rd blob area =", area, "pixels"
Fend
← CurrentModel プロパティー D →