SHCIRCLE
(ステートメント)

円をサーチします。

SHCIRCLE <ウィンドウ番号>,<X座標>,<Y座標>,<半径>,<レベル差>,<モード>

<ウィンドウ番号>
ウィンドウの番号を指定します。(0~511)
<X座標>
X座標を指定します。(0~511)
<Y座標>
Y座標を指定します。(0~479)
<半径>
サーチする円の半径を指定します。(3~240)
<レベル差>
円サーチの検出レベルを指定します。(0~255)
<モード>
円サーチの対象を指定します。(0または1)


-
処理範囲をウィンドウで指定します。
-
指定したウィンドウの位置が画面をはみ出す場合、実行結果はエラーになります。
-
指定できるウィンドウの形状は矩形の角度0°のみです。その他のウィンドウの場合、エラーになります。
-
処理対象はVISWORKPLNで指定した画面になります。
-
本命令を実行時に処理画面3番をワークエリアとして使用するため処理画面3番のデータは保証されません。また、処理画面3番(VISWORKPLN 3)は処理できません。
-
以下は処理結果取得関数で得ることができるデータです。VISSTATUS (n)n項目0実行結果 0=正常 -1=異常1個数2実行時間
VISGETNUM(a、b)ba = 0~5110個数1X座標値2Y座標値3Unknown4レベル5Unknown6Unknown7Unknown8Unknown9Unknown
-
本命令はロボットコントローラではμVisionボード(オプション)が必要です。
-
指定したウィンドウのサーチ範囲が大きくかつ半径が小さい場合、処理時間が増大しタイムアウトエラーになる場合があります。

VISSCREEN 1,0,1
|
'描画画面0番に即時描画します。
|
VISCLS 0
|
|
WINDMAKE R,1,512,480,0,2
|
'ウィンドウ1番を矩形ウィンドウに設定します。
|
CAMIN 1
|
'カメラ映像を格納メモリに取得します。
|
VISWORKPLN 0
|
'対象を格納メモリ0番に指定します。
|
SHCIRCLE 1,0,0,30,128,1
|
'黒の円をサーチします。
|
I1 = VISSTATUS(0)
|
'
|
VISLOC 10,10
|
'
|
VISPRINT I1
|
'
|
IF I1 = 0 THEN
|
'
|
I2 = VISSTATUS(1)
|
'
|
IF I2 <> 0 THEN
|
'
|
FOR I1 = 0 TO I2-1
|
'
|
VISCROSS VISGETNUM(I1,1),VISGETNUM(I1,2)
|
|
NEXT I1
|
'
|
END IF
|
'
|
END IF
|
'
|