VISMEASURE  (ステートメント)


ウィンドウ内の特徴(面積、重心、主軸角)を計測します。


VISMEASURE <ウィンドウ番号>,<X座標>,<Y座標>,<処理対象>,<モード>,<2値下限>[,<2値上限>]


<ウィンドウ番号>
ウィンドウの番号を指定します。(0~511)
<X座標>
X座標を指定します。(0~511)(Ver. 1.6以降:-16384~16383)
<Y座標>
Y座標を指定します。(0~479)(Ver. 1.6以降:-16384~16383)
画面外を指定した場合、「ウィンドウ異常」になります。
<処理対象>
計測する対象を指定します。(0または1)
0:黒(輝度値 < 2値化下限,2値化上限 < 輝度値 )
1:白(2値化下限 ≦ 輝度値 ≦ 2値化上限)
<モード>
計測する特徴を指定します。
0:累積輝度、面積
1:累積輝度、面積、重心(1次モーメント)
2:累積輝度、面積、重心(1次モーメント)、主軸角(2次モーメント)
  • 計測する特徴が多くなるほど処理時間が増加します。
  • 本命令を実行時に処理画面3番をワークエリアとして使用するため処理画面3番のデータは保証されません。また、処理画面3番(VISWORKPLN 3)は処理できません。
  • 本命令はロボットコントローラではμVisionボード(オプション)が必要です。
<2値下限>
2値化する際の下限レベルを指定します。(0~254 下限 < 上限)
<2値上限>
2値化する際の上限レベルを指定します。(1~255 下限 < 上限)
省略時255を指定します。
  • 処理範囲をウィンドウで指定します。(扇ウィンドウのみ主軸角は計測できません)
    モード
    ○:可 ×:不可
    0
    1
    2
    直線(2点指示)
    Windmake P
    直線(長さ、角度)
    Windmake L
    Windmake C
    楕円
    Windmake E
    Windmake S
    ×
    四角
    Windmake R

  • 指定したウィンドウの位置が画面をはみ出す場合、実行結果はエラーになります。
  • 以下は処理結果取得関数で得ることができるデータです。
    VISSTATUS(n)
    n
    項目
    0
    実行結果 0=正常 -1=異常
    1
    unknown
    2
    実行時間

    VISGETNUM(a、b)
    b
    a = 0
    0
    面積
    1
    重心X座標値
    2
    重心Y座標値
    3
    主軸角角度
    4
    累積輝度
    5
    1次モーメントX
    6
    1次モーメントY
    7
    2次モーメントX
    8
    2次モーメントY
    9
    2次モーメントXY

  • 本命令はロボットコントローラではμVisionボード(オプション)が必要です。



VISSCREEN 0,0,1
'格納メモリ0番に即時描画します。
WINDMAKE R,1,512,480,0,2
'ウィンドウ1番を矩形ウィンドウに設定します。
CAMIN 1
'カメラ映像を格納メモリ0番に指定します。
VISWORKPLN 0
'対象を格納メモリ0番に指定します。
VISPLNOUT 0
'
VISMEASURE 1,0,0,1,2,128
'累積輝度、面積、重心、主軸角を求めます。
IF VISSTATUS(0) = 0.0 THEN
'
FOR I1 = 0 TO 9
'
VISLOC 0,I1
'
VISPRINT "結果";I1;"=";VISGETNUM(0,I1)
NEXT I1
'
END IF
'