このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
regionprops3
3 次元ボリューム イメージ領域のプロパティの計測
構文
説明
は、3 次元ボリューム バイナリ イメージ stats
= regionprops3(BW
,properties
)BW
内の各連結要素 (オブジェクト) の一連のプロパティを測定します。出力 stats
は各オブジェクトのさまざまなプロパティを示します。
regionprops3
は、26 連結近傍を使用して、ボリューム バイナリ イメージ内の固有オブジェクトを検出します。詳細については、ピクセルの連結性を参照してください。その他のタイプの連結性を使用してオブジェクトを検出するには、代わりに bwconncomp
を使用して連結要素を作成し、次に CC
引数を使用してその結果を regionprops3
に渡します。
すべての構文において、properties
引数を省略できます。この場合、regionprops3
は "Volume"
、"Centroid"
、および "BoundingBox"
の測定値を返します。
は、stats
= regionprops3(CC
,properties
)bwconncomp
によって返される構造体である CC
内の各連結要素 (オブジェクト) の一連のプロパティを測定します。
は、3 次元ラベル イメージ stats
= regionprops3(L
,properties
)L
にある各ラベル付き領域の一連のプロパティを測定します。
例
3 次元ボリューム イメージ内のオブジェクトの中心と半径の推定
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
入力引数
BW
— ボリューム バイナリ イメージ
3 次元 logical 配列
ボリューム バイナリ イメージ。3 次元 logical 配列として指定します。
regionprops3
は、各要素の top-left
極値を基準に、ボリューム バイナリ イメージに含まれるオブジェクトを左から右に並べ替えます。複数のオブジェクトの水平位置が同じ場合、関数はそれらのオブジェクトを上から下に並べ替えた後、3 番目の次元に沿って再度並べ替えます。regionprop3
は、並べ替え後のオブジェクトと同じ順序で、測定されたプロパティ stats
を返します。
データ型: logical
CC
— 連結要素
構造体
3 次元ボリューム イメージの連結要素。6、18、26 などの 3 次元の連結性の値を使用して bwconncomp
によって返される構造体として指定します。CC.ImageSize
は 1 行 3 列のベクトルでなければなりません。
データ型: struct
L
— ラベル イメージ
3 次元数値配列 | 3 次元 categorical 配列
ラベル イメージ。次のいずれかとして指定します。
3 次元数値配列。
0
とラベル付けされたボクセルは背景です。1
とラベル付けされたボクセルは 1 番目のオブジェクトを構成し、2
とラベル付けされたボクセルは 2 番目のオブジェクトを構成する、というように、次々にオブジェクトを構成します。regionprops3
は負の値のボクセルを背景として扱い、整数でない入力ボクセルを丸めます。数値ラベル イメージは、watershed
やlabelmatrix
などのラベル付け関数から取得できます。3 次元 categorical 配列。各カテゴリが異なる領域に対応します。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| categorical
properties
— 測定のタイプ
"basic"
(既定値) | string または文字ベクトルのコンマ区切りリスト | string または文字ベクトルの cell 配列 | "all"
測定のタイプ。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_x 、ulf_y 、および ulf_z は、直方体の左上隅を指定します。width_x 、width_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 列のベクトルとして返されます。角度は右手の法則に基づきます。 | あり |
"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
出力引数
stats
— 測定値
table
測定値。テーブルとして返されます。テーブル内の行数は、BW
、
または CC
.NumObjectsmax(
のオブジェクトの数に対応します。各テーブル行の変数 (列) は、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.
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。 (R2023a 以降)
使用上の注意および制限:
regionprops3
では C コードの生成がサポートされています (MATLAB® Coder™ が必要)。汎用のMATLAB Host Computer
ターゲット プラットフォームを選択した場合、プリコンパイルされたプラットフォーム固有の共有ライブラリを使用するコードが、regionprops3
によって生成されます。共有ライブラリを使用するとパフォーマンスの最適化は維持されますが、コードを生成できるターゲット プラットフォームが限定されます。詳細については、Image Processing Toolbox でサポートされているコード生成のタイプを参照してください。バイナリ イメージと数値ラベル イメージのみがサポートされています。データ型 categorical の入力ラベル イメージはサポートされていません。
cell 配列のプロパティを渡すことはサポートされていません。代わりに、コンマ区切りリストを使用します。
"ConvexVolume"
、"ConvexHull"
、"ConvexImage"
、"Solidity"
、および"SurfaceArea"
以外のすべてのプロパティがサポートされています。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数は、スレッドベースの環境を完全にサポートします。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
バージョン履歴
R2017b で導入R2023a: C コード生成のサポート
regionprops3
は、C コードの生成をサポートするようになりました (MATLAB Coder が必要)。
R2022b: スレッドベース環境のサポート
regionprops3
は、スレッドベースの環境をサポートするようになりました。
参考
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)