SortBlobs
SortBlobs 関数は、フィクスチャに関してブロブデータ構造体で参照されているブロブをソートするために使用されます。
SortBlobs概要
指定された画像フィクスチャ座標系に対する、参照されているブロブの重心の位置を計算することにより、SortBlobs 関数は、x 軸または y 軸に沿ったブロブの距離、フィクスチャの原点またはグリッドからの距離、ブロブの角度や角度絶対値などの測定特性の 1 つを基準にして、参照されているブロブをソートします。
参照されているブロブのデータ構造体に含まれる個々のブログが調査され、ソート基準パラメータ設定に基づいてブロブが識別されます。その後、ブロブの距離、またはある決まった位置との角度関係のどちらかを測定することにより、このブロブの位置が計算されます。
SortBlobs 関数により、参照されているブロブのソートが完了すると、新しいブロブデータ構造体とこれに伴う結果テーブルが自動的にスプレッドシートに挿入されます。結果テーブルは、選択されたフィクスチャに対するブロブの距離を基準に、降順でソートされます (最も近いブロブがリストの先頭になります。2 番目に近いブロブはリストの 2 番目…のように並べられます)。
SortBlobs 関数は、複数のブロブが存在し、ほかのブロブに対する個々のブロブの位置を判断する必要のあるインスタンスにおいて非常に有効な関数です。
SortBlobsの入力パラメータ
Syntax:SortBlobs(ブロブ,ソートする数,ソート基準,フィクスチャ.行,フィクスチャ.列,フィクスチャ.角度,表示)
ブロブ | このパラメータは、ソートの対象となるブロブデータ構造体を含むスプレッドシートのセルを参照します。 | ||||||||||||||||||
ソートする数 |
返されるブロブの最大数 (1 ~ 4096、デフォルト = 3) を指定します。 注 : このパラメータの値が 0 より大きい場合、SortBlobs 関数は、ブロブデータ構造体内の最初の 10 個のブロブに対応する最大 10 のエントリを含んでいる結果テーブルを自動的に挿入します。より多くのエントリを表示する場合は、最後の行をコピーし、追加の行を末尾に貼り付けることによりテーブルを拡張することができます。 新しく貼り付けた行のインデックスの値を必ず繰り上げて、正しいブロブがインデックスされるようにしてください。
|
||||||||||||||||||
ソート基準 |
ブロブの測定方法とソート方法を表します。
|
||||||||||||||||||
フィクスチャ |
フィクスチャ入力に対する、ブロブの重心またはビジョンツール関数の画像座標系の出力を定義します。フィクスチャに対してブロブの重心を設定すると、フィクスチャが回転または移動した場合に、フィクスチャに対応して参照されるブロブを確実に回転または移動できます。 デフォルト設定は画像の左上隅で、(0, 0, 0) になります。
|
||||||||||||||||||
表示 |
画像上の SortBlobs グラフィックスオーバレイの表示モードを指定します。
|
SortBlobsの出力
戻り値 | ソートされたブロブを含んでいるブロブデータ構造体。入力パラメータが無効であれば #ERR を返します。 |
結果 |
SortBlobs を初めてセルに挿入すると、 注 : [ソートする数] パラメータが 0 より大きい場合、SortBlobs はブロブデータ構造体内の最初の 10 個のブロブに対応する最大 10 のエントリが含まれている結果テーブルを自動的に挿入します。より多くのエントリを表示する場合は、最後の行をコピーし、追加の行を末尾に貼り付けることによりテーブルを拡張することができます。新しく貼り付けた行のインデックスの値を必ず繰り上げて、正しいブロブがインデックスされるようにしてください。
|
SortBlobsデータアクセス関数
SortBlobsブロブデータ構造体の結果テーブルを作成するために、次のデータアクセス関数がスプレッドシートに自動挿入されます。
スプレッドシート名 | 関数名 | 説明 |
行 | GetRow(ブロブ, ブロブインデックス) |
参照されるブロブの重心の Y 座標 (行) を返します。 |
列 | GetCol(ブロブ, ブロブインデックス) |
参照されるブロブの重心の X 座標 (列) を返します。 |
角度 | GetAngle(ブロブ, ブロブインデックス) |
ROI の中心に対するブロブの主軸の角度を返します。 |
カラー | GetColor(ブロブ, ブロブインデックス) | 参照されるブロブのカラーの値 (0 = 黒、1 = 白) を返します。 |
得点 | GetScore(ブロブ, ブロブインデックス) | ブロブが、FindBlobs 関数の条件にどの程度一致しているかを表します。 |
面積 | GetArea(ブロブ, ブロブインデックス) |
参照されるブロブの面積を返します (ピクセル単位)。 |
伸長 | GetElongation(ブロブ, ブロブインデックス) |
参照されるブロブのピクセルが、ブロブの重心からどの程度伸びているかを表す値を返します。例えば、円の伸長は 0 ですが、釘の伸長の値は大きくなります。 |
穴 | GetHoles(ブロブ, ブロブインデックス) | 参照されるブロブに含まれている穴の数を返します。 |
周囲長 | GetPerimeter(ブロブ, ブロブインデックス) |
参照されるブロブを囲む境界線の長さを返します。周囲長は、ブロブの境界線を形成するピクセルの外部エッジをカウントすることにより計算されます。 |
拡散 | GetSpread(ブロブ, ブロブインデックス) |
参照されるブロブのピクセルが、ブロブの重心からどの程度拡散しているかを表す値を返します。例えば、円形の対象物の拡散値は楕円形の対象物の場合よりも小さくなります。 |
次のデータアクセス関数を使用して、そのほかのデータの取得ができます。
しきい値 | GetThresh(ブロブ) | 画像のセグメント化に使用されたしきい値 |
検出数 | GetNFound(ブロブ) | 検出されたブロブの数 |
最小行 | GetMinRow(ブロブ, ブロブインデックス) |
画像座標フレームの方向を向いた、参照されるブロブの周りを囲む正方形の境界ボックスの一番上の行座標を返します。 注 : 異なる方向を持つ境界ボックスについては、BoundingRectangle 関数を参照してください。
|
最小列 | GetMinCol(ブロブ, ブロブインデックス) |
画像座標フレームの方向を向いた、参照されるブロブの周りを囲む正方形の境界ボックスの左端の列座標を返します。 注 : 異なる方向を持つ境界ボックスについては、BoundingRectangle 関数を参照してください。
|
最大行 | GetMaxRow(ブロブ, ブロブインデックス) |
画像座標フレームの方向を向いた、参照されるブロブの周りを囲む正方形の境界ボックスの一番下の行座標を返します。 注 : 異なる方向を持つ境界ボックスについては、BoundingRectangle 関数を参照してください。
|
最大列 | GetMaxCol(ブロブ, ブロブインデックス) |
画像座標フレームの方向を向いた、参照されるブロブの周りを囲む正方形の境界ボックスの左端の列座標を返します。 注 : 異なる方向を持つ境界ボックスについては、BoundingRectangle 関数を参照してください。
|
SortBlobs 関数の例
SortBlobs 関数は、フィクスチャからブロブまでの距離を基準に、ブロブデータ構造体で参照されているブロブをソートするために使用されます。この例では、フィクスチャに対するブロブの位置を基準に、一連のブロブをソートするために SortBlobs パラメータ設定を使用する方法を説明します。
DetectBlobs 関数の例で作成されたものと同じ画像とブロブデータ構造体を使用して、SortBlobs 関数がスプレッドシートの空のセルに挿入され、SortBlobs プロパティシートが自動的に起動されました。
この例では、パラメータは、FindBlobs 関数の例によりフィクスチャとして返されたブロブを使用し、前述の DetectBlobs 関数の例で明らかにしたブロブをソートできるように設定されています。
これらの条件に基づいて、SortBlobs パラメータは次のように構成されます。
ブロブ: このパラメータは、以前生成された DetectBlobs ブロブデータ構造体への絶対セル参照として設定されています。
ソートする数: このパラメータは、ソート対象のブロブが 6 つあるため、6 に設定されます。
ソート基準: このパラメータはフィクスチャ原点からの距離に設定されています。このパラメータの設定値を選択すると、計測の起点を判定するためにフィクスチャパラメータを設定する必要があります。
フィクスチャ: このパラメータは、FindBlobs 関数の例の データ構造体で返された行座標および列座標へのセル参照として設定されています。このパラメータの設定値を選択すると、計測やソートは、常に画像内の指定された特徴を原点として行われるようになります。画像内の別の特徴 (エッジなど、点、ブロブなど) を使用することが可能です。例えば、この例では、FindBlobs 関数の例から返されたブロブは、フィクスチャ座標を設定するために使用されます。
表示: デフォルト設定を使用しました。このとき、下の例にあるように、ブロブデータ構造体を含むセルが選択されている場合だけ、結果のグラフィックスが表示されます。
SortBlobs プロパティシートの設定後、ブロブデータ構造体と結果データテーブルが生成されます。