Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

regionprops3

3 次元ボリューム イメージ領域のプロパティの計測

説明

stats = regionprops3(BW,properties) は、3 次元ボリューム バイナリ イメージ BW 内の各連結要素 (オブジェクト) の一連のプロパティを測定します。出力 stats は各オブジェクトのさまざまなプロパティを示します。

regionprops3 は、26 連結近傍を使用して、ボリューム バイナリ イメージ内の固有オブジェクトを検出します。詳細については、ピクセルの連結性を参照してください。その他のタイプの連結性を使用してオブジェクトを検出するには、代わりに bwconncomp を使用して連結要素を作成し、次に CC 引数を使用してその結果を regionprops3 に渡します。

すべての構文において、properties 引数を省略できます。この場合、regionprops3"Volume""Centroid"、および "BoundingBox" の測定値を返します。

stats = regionprops3(CC,properties) は、bwconncomp によって返される構造体である CC 内の各連結要素 (オブジェクト) の一連のプロパティを測定します。

stats = regionprops3(L,properties) は、3 次元ラベル イメージ L にある各ラベル付き領域の一連のプロパティを測定します。

stats = regionprops3(___,V,properties) は、3 次元ボリューム グレースケール イメージ V にある各ラベル付き領域の一連のプロパティを測定します。最初の入力 (BWCC または L) は、V にある領域を識別します。

すべて折りたたむ

2 つの球を持つバイナリ イメージを作成します。

[x,y,z] = meshgrid(1:50,1:50,1:50);
bw1 = sqrt((x-10).^2 + (y-15).^2 + (z-35).^2) < 5;
bw2 = sqrt((x-20).^2 + (y-30).^2 + (z-15).^2) < 10;
bw = bw1 | bw2;

2 つの球の中心と半径を取得します。

s = regionprops3(bw,"Centroid","PrincipalAxisLength");
centers = s.Centroid
centers = 2×3

    20    30    15
    10    15    35

diameters = mean(s.PrincipalAxisLength,2)
diameters = 2×1

   19.9641
    9.8241

radii = diameters/2
radii = 2×1

    9.9820
    4.9120

中心に 1 の 3 x 3 のキューブを含む 0 の 9 x 9 のキューブを作成します。

innercube = ones(3,3,3);
cube_in_cube = padarray(innercube,[3 3],0,'both');

キューブ内のキューブのすべての統計を取得します。

stats = regionprops3(cube_in_cube,'all')
stats=1×18 table
    Volume     Centroid      BoundingBox                SubarrayIdx                     Image         EquivDiameter    Extent    VoxelIdxList       VoxelList        PrincipalAxisLength      Orientation    EigenVectors    EigenValues      ConvexHull        ConvexImage      ConvexVolume    Solidity    SurfaceArea
    ______    ___________    ___________    ___________________________________    _______________    _____________    ______    _____________    _____________    _______________________    ___________    ____________    ____________    _____________    _______________    ____________    ________    ___________

      27      5    5    2    1x6 double     {[4 5 6]}    {[4 5 6]}    {[1 2 3]}    {3x3x3 logical}       3.7221          1       {27x1 double}    {27x3 double}    3.873    3.873    3.873    0    0    0    {3x3 double}    {3x1 double}    {24x3 double}    {3x3x3 logical}         27            1           41.07   

入力引数

すべて折りたたむ

ボリューム バイナリ イメージ。3 次元 logical 配列として指定します。

regionprops3 は、各要素の top-left 極値を基準に、ボリューム バイナリ イメージに含まれるオブジェクトを左から右に並べ替えます。複数のオブジェクトの水平位置が同じ場合、関数はそれらのオブジェクトを上から下に並べ替えた後、3 番目の次元に沿って再度並べ替えます。regionprop3 は、並べ替え後のオブジェクトと同じ順序で、測定されたプロパティ stats を返します。

データ型: logical

3 次元ボリューム イメージの連結要素。6、18、26 などの 3 次元の連結性の値を使用して bwconncomp によって返される構造体として指定します。CC.ImageSize は 1 行 3 列のベクトルでなければなりません。

データ型: struct

ラベル イメージ。次のいずれかとして指定します。

  • 3 次元数値配列。0 とラベル付けされたボクセルは背景です。1 とラベル付けされたボクセルは 1 番目のオブジェクトを構成し、2 とラベル付けされたボクセルは 2 番目のオブジェクトを構成する、というように、次々にオブジェクトを構成します。regionprops3 は負の値のボクセルを背景として扱い、整数でない入力ボクセルを丸めます。数値ラベル イメージは、watershedlabelmatrix などのラベル付け関数から取得できます。

  • 3 次元 categorical 配列。各カテゴリが異なる領域に対応します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | categorical

測定のタイプ。string または文字ベクトルのコンマ区切りリスト、string または文字ベクトルの cell 配列、"all"、または "basic" のいずれかとして指定します。

  • "all" を指定すると、regionprops3 はすべての形状測定値を計算します。グレースケール イメージも指定すると、regionprops3 はすべてのボクセル値の測定値を返します。

  • "basic" を指定するか、properties 引数を省略すると、regionprops3"Volume""Centroid" および "BoundingBox" の測定のみを計算します。

以下の表に、形状測定を提供するすべてのプロパティを示します。ボクセル値の測定値の表に一覧表示した追加プロパティは、グレースケール イメージを指定する場合のみ有効です。

形状測定

プロパティ名説明コード生成
"BoundingBox"領域を含む最小の直方体。[ulf_x ulf_y ulf_z width_x width_y width_z] の形式の 1 行 6 列のベクトルで返されます。ulf_xulf_y、および ulf_z は、直方体の左上隅を指定します。width_xwidth_y、および width_z は、各次元に沿って直方体の幅を指定します。あり
"Centroid"

領域の重心。1 行 3 列のベクトルとして返されます。3 つの要素は重心の (x, y, z) 座標を指定します。

あり
"ConvexHull"領域を含むことができる最小の凸多角形。p 行 3 列の行列として返されます。行列の各行には、多角形の 1 頂点の x 座標と y、および z の座標が含まれています。なし
"ConvexImage"凸包のイメージ。凸包内のボクセルがすべて塗りつぶされた状態 (on に設定) のボリューム バイナリ イメージとして返されます。イメージは、領域の境界ボックスのサイズです。 なし
"ConvexVolume"ConvexImage 内のボクセル数。スカラーとして返されます。なし
"EigenValues"領域を表すボクセルの固有値。3 行 1 列のベクトルとして返されます。regionprops3 はこの固有値を使用して主軸の長さを計算します。あり
"EigenVectors"領域を表すボクセルの固有ベクトル。3 行 3 列のベクトルとして返されます。regionprops3 は、固有ベクトルを使用して領域と同じ正規化された 2 次の中心モーメントを持つ楕円体の方向を計算します。あり
"EquivDiameter"領域と同じボリュームを持つ球の直径。スカラーとして返されます。(6*Volume/pi)^(1/3) と同様に計算します。あり
"Extent"境界ボックス全体のボクセル数に対する領域内ボクセル数の割合。スカラーとして返されます。境界ボックスのボリュームで除算された Volume の値として計算されます。 [Volume/(bounding box width * bounding box height * bounding box depth)]あり
"Image"領域の境界ボックス。領域の境界ボックスと同じサイズのボリューム バイナリ イメージとして返されます。on ボクセルは領域に対応しており、他のすべてのボクセルは off です。あり
"Orientation"

オイラー角度 [2]。1 行 3 列のベクトルとして返されます。角度は右手の法則に基づきます。regionprops3 は、それぞれロール、ピッチ、およびヨーを表す "x""y"、および "z" 軸に沿った原点を見て角度を解釈します。正の角度は、反時計回りの回転を表します。回転演算は可換ではないため、意図した効果を得るには正しい順序で適用する必要があります。

あり
"PrincipalAxisLength"領域と同じ正規化された 2 次中心モーメントを持つ楕円の長軸の長さ (ボクセル単位)。1 行 3 列のベクトルとして返されます。regionprops3 は値を降順 (高から低へ) で並べ替えます。あり
"Solidity"領域内にもある凸包のボクセルの比率。スカラーとして返されます。Volume/ConvexVolume と同様に計算します。なし
"SubarrayIdx"オブジェクト境界ボックスの内側の要素を抽出するのに使用されるインデックス。L(idx{:}) がオブジェクト境界ボックス内の L 要素を抽出するような cell 配列として返されます。あり
"SurfaceArea"領域の境界周囲の距離 [1]。スカラーとして返されます。なし
"Volume"領域内の on ボクセルの実際の数。スカラーとして返されます。ボリュームは、ボリューム バイナリ イメージ BW 内部の領域に含まれるボクセル数のメトリクスまたは測定値を表します。あり
"VoxelIdxList"領域内のボクセルの線形インデックス。p 要素ベクトルとして返されます。あり
"VoxelList"領域内のボクセルの位置。p 行 3 列の行列として返されます。行列の各行は [x y z] の形式で、領域内の 1 ボクセルの座標を指定します。あり

以下の表に示すボクセル値の測定値プロパティは、グレースケールのボリューム イメージ V を指定する場合のみ有効です。

ボクセル値の測定値

プロパティ名 説明コード生成
"MaxIntensity"領域内で最大の強度を持つボクセルの値。スカラーとして返されます。 あり
"MeanIntensity"領域内のすべての強度値の平均。スカラーとして返されます。 あり
"MinIntensity"領域内で最小の強度を持つボクセルの値。スカラーとして返されます。 あり
"VoxelValues"領域内のボクセルの値。p 行 1 列のベクトルとして返されます。ここで、p は領域内のボクセル数です。ベクトルの各要素には、領域内のボクセルの値が含まれています。あり
"WeightedCentroid"位置と強度値に基づく領域の中心。座標の p 行 3 列のベクトルとして返されます。WeightedCentroid の最初の要素は、重み付き重心の水平座標 (または x 座標) です。2 番目の要素は、垂直座標 (または y 座標) です。3 番目の要素は、平面座標 (または z 座標) です。あり

データ型: char | string | cell

ボリューム グレースケール イメージ。3 次元の数値配列として指定します。イメージのサイズはバイナリ イメージ BW、連結要素の構造体 CC またはラベル行列 L のサイズと一致しなければなりません。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32

出力引数

すべて折りたたむ

測定値。テーブルとして返されます。テーブル内の行数は、BWCC.NumObjects または max(L(:)) のオブジェクトの数に対応します。各テーブル行の変数 (列) は、properties で指定された、各領域で計算されるプロパティを示します。入力イメージがカテゴリカル ラベル イメージ L の場合、stats は追加の変数と "LabelName" プロパティを含みます。

stats に含まれる測定値の順序は、バイナリ イメージ BW に含まれる並べ替え後のオブジェクトと同じになるか、CC または L で指定された順序付きオブジェクトと同じになります。

参照

[1] Lehmann, Gaetan and David Legland. Efficient N-Dimensional surface estimation using Crofton formula and run-length encoding, The Insight Journal, 2012. https://insight-journal.org/browse/publication/852.

[2] Shoemake, Ken, Graphics Gems IV. Edited by Paul S. Heckbert, Morgan Kaufmann, 1994, pp. 222–229.

拡張機能

バージョン履歴

R2017b で導入

すべて展開する