最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

vision.BlobAnalysis

連結された領域のプロパティ

説明

バイナリ イメージ内の連結された領域の統計量を計算する

一連の点の追跡:

  1. vision.BlobAnalysis オブジェクトを作成し、そのプロパティを設定します。

  2. 関数と同様に、引数を指定してオブジェクトを呼び出します。

System object の機能の詳細については、System object とは (MATLAB)を参照してください。

作成

説明

Hblob = vision.BlobAnalysis は、バイナリ イメージ内の連結された領域の統計量の計算に使用されるブロブ解析オブジェクト H を返します。

Hblob = vision.BlobAnalysis(Name,Value) は、1 つ以上の名前と値のペアを使用してプロパティを設定します。各プロパティ名を引用符で囲みます。たとえば、Hblob = vision.BlobAnalysis('AreaOutputPort',true) です。

プロパティ

すべて展開する

特に指定がない限り、プロパティは "調整不可能" です。つまり、オブジェクトの呼び出し後に値を変更することはできません。オブジェクトは呼び出すとロックされ、ロックを解除するには関数 release を使用します。

プロパティが "調整可能" の場合、その値をいつでも変更できます。

プロパティ値の変更の詳細については、System object を使用した MATLAB でのシステム設計 (MATLAB)を参照してください。

ブロブ面積を返します。true または false として指定します。

ブロブの重心の座標を返します。true または false として指定します。

境界ボックスの座標を返します。true または false として指定します。

値が楕円の長軸の長さを表すベクトルを返します。true または false として指定します。このプロパティを true に設定すると、値が楕円の長軸の長さを表すベクトルが出力されます。この楕円は、ラベル付けされた領域と同じ正規化された 2 次中心モーメントをもちます。このプロパティは、OutputDataType プロパティを double または single に設定した場合に適用されます。

値が楕円の短軸の長さを表すベクトルを返します。true または false として指定します。このプロパティを true に設定すると、値が楕円の短軸の長さを表すベクトルが出力されます。この楕円は、ラベル化されたと同じ正規化された 2 次中心モーメントをもちます。このプロパティは OutputDataType プロパティが double または single である場合に使用できます。

値が楕円の長軸と x 軸の角度を表すベクトルを返します。true または false として指定します。このプロパティを true に設定すると、値が楕円の長軸と x 軸の間の角度を表すベクトルが出力されます。このプロパティは、OutputDataType プロパティを double または single に設定した場合に適用されます。

値が楕円の離心率を表すベクトルを返します。true または false として指定します。このプロパティを true に設定すると、値が楕円の離心率を表すベクトルが出力されます。この楕円は、領域と同じ 2 次モーメントをもちます。このプロパティは、OutputDataType プロパティを double または single に設定した場合に適用されます。

値が等価直径の二乗を表すベクトルを返します。true または false として指定します。このプロパティを true に設定すると、値が等価直径の二乗を表すベクトルが出力されます。

値がブロブの面積を境界ボックスの面積で除算した結果を表すベクトルを返します。true または false として指定します。

値がブロブの周囲長の推定値を表すベクトルを返します。true または false として指定します。

統計値の出力データ型。doublesingle、または Fixed point として指定します。面積と境界ボックスの出力のデータ型は、常に int32 になります。このプロパティを Fixed point に設定すると、Major axis lengthMinor axis lengthOrientation および Eccentricity は適用されません。

連結ピクセル。4 または 8 として指定します。

各入力イメージのラベル付けされた領域の最大数。正のスカラー整数として指定します。オブジェクトが出力するブロブの最大数は、このプロパティの値と入力イメージのサイズの両方に依存します。入力イメージのサイズによってオブジェクトが出力するブロブの数が制限されることがあります。

ピクセル単位の最小ブロブ面積。正のスカラー整数として指定します。

調整可能: Yes

ピクセル単位の最大ブロブ面積。整数として指定します。

調整可能: Yes

少なくとも 1 つのイメージ境界ピクセルを含むブロブを除外します。true または false として指定します。

各入力イメージのラベル付けされた領域の最大数。正のスカラー整数として指定します。オブジェクトが出力するブロブの最大数は、このプロパティの値と入力イメージのサイズの両方に依存します。入力イメージのサイズによってオブジェクトが出力するブロブの数が制限されることがあります。

固定小数点プロパティ

固定小数点演算の丸め手法。'Floor''Ceiling''Convergent''Nearest''Round''Simplest'、または 'Zero' として指定します。

整数入力が範囲外の場合に実行するアクション。'Wrap' または 'Saturate' として指定します。

積のデータ型。'Same as input' または 'Custom' として指定します。

乗算の語長と小数部の長さ。スケーリングされた numerictype オブジェクトとして指定します。このプロパティは、AccumulatorDataType プロパティを 'Custom' に設定した場合にのみ適用されます。

アキュムレータのデータ型。'Same as product''Same as input'、または 'Custom' として指定します。

アキュムレータの語長と小数部の長さ。スケーリングされた numerictype オブジェクトとして指定します。このプロパティは、AccumulatorDataType プロパティを 'Custom' に設定した場合にのみ適用されます。

使用法

R2016b より前のバージョンでは、関数 step を使用して System object™ アルゴリズムを実行します。step に対する引数は作成したオブジェクトであり、この節で示す引数が次に続きます。

たとえば、y = step(obj,x)y = obj(x) は同等の演算を実行します。

説明

[area,centrioid,bbox] = Hblob(bw) は、AreaOutputPortCentroidOutputPort、および BoundingBoxOutputPort プロパティが true に設定されている場合に、ブロブの面積、重心、および境界ボックスを返します。既定で true に設定されるのは、これらのプロパティだけです。追加プロパティを true に設定すると、areacentrioid および bbox の出力に従って対応する出力が返されます。

[___,majoraxis] = Hblob(bw) は、MajorAxisLengthOutputPort プロパティが true に設定されている場合に、入力バイナリ イメージ bw で見つかったブロブの長軸の長さ majoraxis を計算します。

[___,minoraxis] = Hblob(bw) は、MinorAxisLengthOutputPort プロパティが true に設定されている場合に、入力バイナリ イメージ BW で見つかったブロブの短軸の長さ minoraxis を計算します。

[bw___,orientation] = Hblob(bw) は、OrientationOutputPort プロパティが true に設定されている場合に、入力バイナリ イメージ bw で見つかったブロブの orientation を計算します。

[___,eccentricity] = Hblob(bw) は、EccentricityOutputPort プロパティが true に設定されている場合に、入力バイナリ イメージ bw で見つかったブロブの eccentricity を計算します。

[___,EQDIASQ] = Hblob(bw) は、EquivalentDiameterSquaredOutputPort プロパティが true に設定されている場合に、入力バイナリ イメージ bw で見つかったブロブの相当直径の 2 乗 EQDIASQ を計算します。

[___,EXTENT] = Hblob(bw) は、ExtentOutputPort プロパティが true に設定されている場合に、入力バイナリ イメージ bw で見つかったブロブの EXTENT を計算します。

[___,perimeter] = Hblob(bw) は、PerimeterOutputPort プロパティが true に設定されている場合に、入力バイナリ イメージ bw で見つかったブロブの perimeter を計算します。

[___,label] = Hblob(bw) は、LabelMatrixOutputPort プロパティが true に設定されている場合に、入力バイナリ イメージ bw で見つかったブロブのラベル行列 label を返します。

入力引数

すべて展開する

バイナリ イメージ。ベクトルまたは行列として指定します。

出力引数

すべて展開する

ラベル付けされた領域のピクセル数。ベクトルとして指定します。

重心座標。M 行 2 列の行列として指定します。M はブロブ数です。

[x y width height] の形式の M 行 4 列の行列。ここで、M はブロブ数、[x y] は境界ボックスの左上隅を表します。

楕円の長軸の長さ。ベクトルとして指定します。

楕円の短軸の長さ。ベクトルとして指定します。

楕円の長軸と x 軸の間の角度。ベクトルとして指定します。

楕円の離心率。ベクトルとして指定します。

相当直径の 2 乗。ベクトルとして指定します。

面積と境界ボックスの間の比率。ベクトルとして指定します。ベクトルには、ブロブの面積をその境界ボックスの面積で除算した結果が含まれます。

周囲長の推定。ベクトルとして指定します。ベクトルには、各ブロブの周囲長 (ピクセル単位) の推定が含まれます。

ラベル行列。行列として指定します。

オブジェクト関数

オブジェクト関数を使用するには、System object を最初の入力引数として指定します。たとえば、obj という名前の System object のシステム リソースを解放するには、次の構文を使用します。

release(obj)

すべて展開する

stepSystem object のアルゴリズムの実行
releaseリソースを解放し、System object のプロパティ値と入力特性の変更を可能にします。
resetSystem object の内部状態のリセット

すべて展開する

ブロブ解析オブジェクトを作成します。

hBlob = vision.BlobAnalysis('AreaOutputPort',false,'BoundingBoxOutputPort',false);

ブロブを作成します。

img = logical([0 0 0 0 0 0; ...
 		0 1 1 1 1 0; ...
 		0 1 1 1 1 0; ...
 		0 1 1 1 1 0; ...
 		0 0 0 0 0 0]);

重心の座標を求めます。

centroid = hBlob(img);

拡張機能

R2012a で導入