SHMODEL  (ステートメント)


モデルをサーチします。


SHMODEL <ウィンドウ番号>,<X座標>,<Y座標>,<モデル番号>,<一致度>
[,<モード>[,<個数> [,<開始角度>[,<終了角度>]]]]


<ウィンドウ番号>
ウィンドウの番号を指定します。(0~511)
<X座標>
X座標を指定します。(0~511)
<Y座標>
Y座標を指定します。(0~479)
<モデル番号>
サーチするモデル番号を指定します。(0~99)
<一致度>
サーチするモデルの一致度を指定します。(0~100)
<モード>
サーチする際のモードを指定します。
0:ピクセル単位のサーチ
1:サブピクセル単位のサーチ
省略時は0を指定します。
<個数>
一度にサーチする個数を指定します。(1~49)省略時は1を指定します。
<開始角度>
サーチする対象の回転範囲(開始角度)を指定します。(-360~360)   省略時は0を指定します。[V1.4以降]
<終了角度>
サーチする対象の回転範囲(終了角度)を指定します。(-360~360)   省略時は0を指定します。[V1.4以降]
  • サーチするモデルをSHDEFMODELで登録する必要があります。
  • 個数を2以上に設定した場合、設定個数サーチできなければ検出できた結果だけを格納します。
  • サーチには時間がかかる場合がありますが、制限時間内にサーチが終了しない場合タイムアウトになります。設定はパソコンで行ないます。(初期値2秒)
  • 対象画面の状態によっては、一致度を高めに設定するとサーチできない場合があります。そのような場合、一致度を下げるなどの調整をしてください。
  • 処理範囲をウィンドウで指定します。
  • 指定したウィンドウの位置が画面をはみ出す場合、実行結果はエラーになります。
  • 指定できるウィンドウの形状は矩形の角度0°のみです。その他のウィンドウの場合、エラーになります。
  • 処理対象はVISWORKPLNで指定した画面になります。
  • 本命令を実行時に処理画面3番をワークエリアとして使用するため処理画面3番のデータは保証されません。処理画面3番(VISWORKPLN 3)は処理できません。
  • 以下は処理結果取得関数で得ることができるデータです。
    VISSTATUS (n)
    n
    項目
    0
    実行結果
    0 = 正常
    -1 = モデル未登録
    -2 = 失敗
    -3 = タイムアウト
    1
    個数
    2
    実行時間

    VISGETNUM(a、b)
    b
    a = 0 ~ 49
    0
    個数
    1
    X座標値
    2
    Y座標値
    3
    一致度
    4
    角度[V1.4]
    5
    原点X座標値[V1.4]
    6
    原点Y座標値[V1.4]
    7
    原点角度[V1.4]
    8
    Unknown
    9
    Unknown

  • 本命令はμVisionボード(オプション)が必要です。
  • サーチモデルサイズとウィンドウサイズが同じ場合、その位置での一致度のみ計算します。
  • [開始角度]=0,[終了角度]=0に設定すると角度計測を行いません。
  • [開始角度]と[終了角度]を0以外の同じ値に設定すると、[開始角度]=0,[終了角度]=360と同じ角度計測を行います



VISSCREEN 1,0,1
'描画画面0番に即時描画します。
VISCLS 0
'
VISPLNOUT 0
'
WINDMAKE R,1,512,480,0,2
'ウィンドウ1番を矩形ウィンドウに設定します。
CAMIN 1
'カメラ映像を格納メモリに取得します。
VISWORKPLN 0
'対象を格納メモリ0番に指定します。
SHMODEL 1,0,0,1,80
'モデル1番と一致度80%の部分を画面からサーチしま
'す。
I1 = VISSTATUS(0)
'
VISLOC 10,10
'
VISDEFCHAR 1,1,3
'
VISPRINT I1
'
IF I1 = 0 THEN
'
VISPRINT VISGETNUM(0,1),VISGETNUM(0,2)
VISCROSS VISPOSX(0),VISPOSY(0)
END IF
'