BLOB
(ステートメント)

ラベリングを実行します。

BLOB <ウィンドウ番号>,<X座標>,<Y座標>,<処理対象>,<2値下限>[,<2値上限>[,<連結>[,<面積下限>[,<ソート>]]]]

<ウィンドウ番号>
ウィンドウの番号を指定します。(0~511)
<X座標>
X座標を指定します。(0~511)
<Y座標>
Y座標を指定します。(0~479)
<処理対象>
ラベリングで求める対象を指定します。(0 または 1)
0:黒(輝度値 < 2値化下限 , 2値化上限 < 輝度値 )
1:白(2値化下限 ≦ 輝度値 ≦ 2値化上限)
<2値下限>
2値化する際の下限レベルを指定します。(0~254 下限 < 上限)
<2値上限>
2値化する際の上限レベルを指定します。(1~255 下限 < 上限)
省略時 255を指定します。
<連結>
連結の条件を指定します。(0または1)
0:連結4近傍(左右、上下の隣り合う画素の状態をチェック)
1:連結8近傍(左右、上下、に斜めも含めた隣り合う画素の状態をチェック)
<面積下限>
ラベリングの際無視する面積値の下限を指定します。(0~245760)
<ソート>
ラベリングで求めた番号の並び替えを指定します。(0~2)
0:求められた順序
1:面積値降順
2:面積値昇順
ラベリングの例


-
処理範囲をウィンドウで指定します。
-
指定したウィンドウの位置が画面をはみ出す場合、実行結果はエラーになります。
-
指定できるウィンドウの形状は矩形の角度0°のみです。その他のウィンドウの場合、エラーになります。
-
処理対象はVISWORKPLNで指定した画面になります。
-
以下は処理結果取得関数で得ることができるデータです。VISSTATUS (n)n項目0実行結果 0=正常 -1=異常1ラベル数2実行時間
VISGETNUM(a、b)ba = 0~ max5110面積1重心X座標値2重心Y座標値3unknown4フィレ径原点Y座標5フィレ径原点X座標6フィレ径幅7フィレ径高さ8unknown9unknown
-
指定時間内にラベリングが終了しない場合、エラーとなります。
-
本命令はロボットコントローラではμVisionボード(オプション)が必要です。

VISSCREEN 1,0,1
|
'描画画面0番に即時描画します。
|
VISCLS 0
|
'
|
WINDMAKE R,1,512,480,0,2
|
'ウィンドウ1番を矩形ウィンドウに設定します。
|
CAMIN 1
|
'カメラ映像を格納メモリ0番に指定します。
|
VISPLNOUT 0
|
'
|
VISWORKPLN 0
|
'対象を格納メモリ0番に指定します。
|
BLOB 1,0,0,0,128
|
'ラベリングを実行します。
|
I1 = VISSTATUS(0)
|
'
|
IF I1 = 0 THEN
|
'
|
I2 = VISSTATUS(1)
|
'
|
VISDEFCHAR 1,1,2
|
'
|
VISLOC 10,10
|
'
|
VISPRINT I1,I2
|
'
|
IF I2 <> 0 THEN
|
'
|
FOR I1 = 0 TO I2 -1
|
'
|
VISLOC 10,11
|
'
|
VISPRINT VISGETNUM(I1,1),VISGETNUM(I1,2)
|
|
VISCROSS VISGETNUM(I1,1),VISGETNUM(I1,2)
|
|
NEXT I1
|
'
|
END IF
|
'
|
END IF
|
'
|
VISCAMOUT 1
|
'
|