bwmorph3
バイナリボリュームの演算
説明
例
bwmorph3の干净と多数演算演算比较比较
3 ri mriボリュームデータ読み込みバイナリボリュームを作成。。。。沃尔肖
を使用して、ボリューム データを表示します。
loadmristack; BW1 = mristack > 127; volshow(BW1);
1 に設定されているボクセルであり、かつ、0 に設定されているボクセルで囲まれているボクセルを削除するには、ボリューム データで'干净的'
操作を実行します。削除するボクセルを決定するとき、'干净的'
26个个するボクセルを考虑。。。。沃尔肖
を使用て结果表示します。
BW2 = bwmorph3(BW1,'干净的');沃尔肖(BW2);
比较のため,でで'majority'
操作を実行ます'majority'
操作'干净的'
操作同様を実行します。。,ターゲットボクセルボクセルの近傍あるボクセルボクセルボクセルのの半分半分以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上以上'majority'
操作も 26 個の隣接ボクセルを考慮します。沃尔肖
を使用て结果表示します。
bw3 = bwmorph3(bw1,'多数');Volshow(BW3);
モルフォロジー演算の说明
この例では、bwmorph3
でサポートされるモルフォロジー演算のそれぞれがシンプル ボリュームでどのように機能するのかを説明します。
値が1の3 x 3 x 3のキューブを中心に含む,値が0の9 x 9 x 3の直方体を作成します。
innercube = ones(3,3,3); cube_center = padarray(innercube,[3 3],0,'both')
cube_center = cube_center(:,::,1)= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 cube_center(:,:,2)= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 11 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 cube_center(:,:,3) = 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
remove 操作でのピクセルの Off 設定
'remove'
演算をし,内侧キューブの中央をを0
に設定します。この操作は、'on'
ボクセルによって完全に囲まれた、任意の'on'
ボクセルの値を、'离开'
に設定します。
remove_center = bwmorph3(cube_center,'remove')
remove_center =9x9x3 logical arrayremove_center(::,:,1)= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 11 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 remove_center(:, :, :,2)= 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 remove_center(:,:,3) = 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
填充演算ののの
'充满'
演算をし,内侧キューブの中央をを1
に設定します。この操作は、'on'
ボクセルによって完全に囲まれた、任意の'离开'
ボクセルの値を、'on'
に設定します。
fill_center = bwmorph3(remove_center,'充满')
fill_center =9x9x3 logical arrayfill_center(:,:,1) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fill_center(:,:,2) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fill_center(:,:,3) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
清洁演算でのピクセル除去除去
'干净的'
演算を使用して、1
に设定てがボリュームコンポーネントコンポーネント连结していいボクセルボクセルすべてすべてををを削除削除削除削除削除しします。。。。このこのこの例例例でではは,,,,,,,,,,,,,,,、2'干净的'
演算を使用してそれを削除します。
Cube_center(2,2,2) = 1
cube_center = cube_center(:,::,1)= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 cube_center(:,:,2)= 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 cube_center(:,:,3) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
cube_cleaned = bwmorph3(cube_center,'干净的')
cube_cleaned =9x9x3 logical arraycube_cleaned(:,::,1)= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 11 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CUBE_CLEANED(:,:,:,2)= 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 cube_cleaned(:,:,3) = 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
过半数の検出
'majority'
演算を使用して、Cube_center
の過半数を 検出します。この演算では、ボクセルの 26 個の連結された隣接ボクセルの半数以上 (majority) が1
に設定されている場合にだけボクセルが維持されます。
cube_major = bwmorph3(cube_center,'多数')
cube_major =9x9x3 logical arraycube_major(:,::,1)= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CUBE_MAJOR(:,:,:,2)= 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 cube_major(:,:,3) = 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
骨格にした形状作成作成
分岐点と終点のオプションを描くには、別の小さな行列 (今回は骨格のような線形の形状) を作成します。
x1 =眼(5);x2 =零(5);x2(3,3)= 1;x3 = x2;shape = cat(3,x1,x2,x3)
shape = shape(:,:,1)= 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 shape(:, :, :,2)= 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 shape(:,:,3) = 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 00 0 0 0
终点の検出
形状の終点を'endpoints'
演算を使用して検出します。この形状には、3 つの終点があります。1 番目の平面で対角の両端と、3 番目の平面の中央を通る線の端です。
shape_endpts = bwmorph3(shape,'endpoints')
shape_endpts =5x5x3 logical arrayshape_endpts(:,:,1) = 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 shape_endpts(:,:,2) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 shape_endpts(:,:,3) = 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
分岐点の検出
形状の分岐点を'branchpoints'
演算を使用して検出します。形状には、1 つの分岐点があります。対角線と水平線が交差するところです。
shape_brpts = bwmorph3(shape,'branchpoints')
shape_brpts =5x5x3 logical arrayshape_brpts(:,:,1) = 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 shape_brpts(:,:,2) = 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 shape_brpts(:,:,3) = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
入力引数
V
—入力ボリューム
数値配列|logical 配列
入力ボリューム。数値配列または logical 配列として指定します。数値入力场合,ゼロのピクセルは1
(真的
)であるとれます。
bwmorph3
は 1 次元、2 次元または 3 次元配列を受け付けます。1 次元または 2 次元の入力配列を指定する場合、bwmorph3
は、3 次元ボリュームに対して定義されているモルフォロジー演算を実行します。2 次元の処理を実行する場合は、代わりにbwmorph
を使用し。
データ::single
|双倍的
|int8
|INT16
|INT32
|INT64
|uint8
|UINT16
|uint32
|uint64
|logical
operation
—実行するモルフォロジー演算
文字ベクトル|字符串スカラー
実行するモルフォロジー演算。以下の文字ベクトルまたは string スカラーのいずれかに指定します。これらの演算の例については、モルフォロジー演算の说明を参照してください。
操作 |
説明 |
図 |
---|---|---|
|
スケルトンの分岐点を検出する。分岐点は、複数の分岐が交差するジャンクションのボクセルです。 分岐点を見つけるには、イメージをスケルトン化しなければなりません。スケルトン化されたイメージを作成するには、 |
|
|
0 に設定することで、孤立したボクセルを削除します。孤立ボクセルは、 |
|
|
スケルトンの終点を検出します。終点は分岐の端にあるボクセルです。 メモ: 終点を見つけるには、イメージをスケルトン化しなければなりません。スケルトン化されたイメージを作成するには、 |
|
|
|
|
|
|
モルフォロジー演算の说明を参照してください。 |
|
|
|
データ::char
|string
ヒント
バージョン履歴
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
matlabコマンドコマンドに入力してしください。。。。ブラウザー
选择一个网站
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:.
您还可以从以下列表中选择一个网站:
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.
美洲
- AméricaLatina(Español)
- 加拿大(英语)
- 美国(英语)