SHCORNER  (ステートメント)


コーナーをサーチします。


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


<ウィンドウ番号>
ウィンドウの番号を指定します。(0~511)
<X座標>
X座標を指定します。(0~511)
<Y座標>
Y座標を指定します。(0~479)
<レベル差>
コーナーサーチの検出レベルを指定します。(0~255)
<モード>
コーナーサーチの対象を指定します。(0~7)
  • 処理範囲をウィンドウで指定します。
  • 指定したウィンドウの位置が画面をはみ出す場合、実行結果はエラーになります。
  • 指定できるウィンドウの形状は矩形の角度0°のみです。その他のウィンドウの場合、エラーになります。
  • 処理対象はVISWORKPLNで指定した画面になります。
  • 本命令を実行時に処理画面3番をワークエリアとして使用するため処理画面3番のデータは保証されません。また、処理画面3番(VISWORKPLN 3)は処理できません。
  • 以下は処理結果取得関数で得ることができるデータです。
    VISSTATUS (n)
    n
    項目
    0
    実行結果 0=正常 -1=異常
    1
    個数
    2
    実行時間

    VISGETNUM(a、b)
    b
    a = 0~511
    0
    個数
    1
    X座標値
    2
    Y座標値
    3
    Unknown
    4
    レベル
    5
    Unknown
    6
    Unknown
    7
    Unknown
    8
    Unknown
    9
    Unknown

  • 検出中にタイムアウトが起こった場合、それまでに検出したコーナー数となります。
  • 本命令はロボットコントローラではμVisionボード(オプション)が必要です。



VISSCREEN 1,0,1
'描画画面0番に即時描画します。
VISCLS 0
'
WINDMAKE R,1,512,480,0,2
'ウィンドウ1番を矩形ウィンドウに設定します。
CAMIN 1
'カメラ映像を格納メモリに取得します。
VISWORKPLN 0
'対象を格納メモリ0番に指定します。
SHCORNER 1,0,0,180,0
'黒の左下コーナーをサーチします。
I1 = VISSTATUS(0)
'
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
'