メインコンテンツ

medfilt3

3 次元のメディアン フィルター処理

説明

B = medfilt3(A) は、3×3×3 のフィルターを使用して 3 次元イメージ A をフィルター処理します。既定の設定では、medfilt3 は境界でのミラーリングによって値を複製し、イメージをパディングします。

B = medfilt3(A,[m n p]) は、3 次元イメージ A に 3 次元のメディアン フィルター処理を適用します。B の各出力ボクセルは、A の対応するボクセル周辺にある m x n x p の近傍の中央値を含んでいます。

B = medfilt3(___,padopt) は、medfilt3 による配列の境界のパディング方法を制御します。

すべて折りたたむ

ノイズを含む 3 次元表面を作成します。

[x,y,z,V] = flow(50);
noisyV = V + 0.1*double(rand(size(V))>0.95) - 0.1*double(rand(size(V))<0.05);

メディアン フィルター処理を適用します。

filteredV = medfilt3(noisyV);

ノイズを含む表面と共にフィルター処理された表面を表示します。

subplot(1,2,1)
hpatch1 = patch(isosurface(x,y,z,noisyV,0));
isonormals(x,y,z,noisyV,hpatch1)
set(hpatch1,FaceColor="red",EdgeColor="none")
daspect([1,4,4])
view([-65,20]) 
axis tight off
camlight left
lighting gouraud

subplot(1,2,2)
hpatch2 = patch(isosurface(x,y,z,filteredV,0));
isonormals(x,y,z,filteredV,hpatch2)
set(hpatch2,FaceColor="red",EdgeColor="none")
daspect([1,4,4])
view([-65,20])
axis tight off
camlight left 
lighting gouraud

Figure contains 2 axes objects. Hidden axes object 1 contains an object of type patch. Hidden axes object 2 contains an object of type patch.

入力引数

すべて折りたたむ

入力イメージ。3 次元数値配列または logical 配列として指定します。

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

近傍のサイズ。正の奇数の整数の 3 要素ベクトルとして指定します。

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

パディング オプション。以下のいずれかの値に指定します。

説明
"symmetric"配列自体の鏡像で配列をパディング

[314159265][5115995133144113314415115995622655662265565115995]

"replicate"境界の要素の繰り返しによる配列のパディング

[314159265][3331444333144433314441115999222655522265552226555]

"zeros"0 による配列のパディング

[314159265][0000000000000000314000015900002650000000000000000]

データ型: char | string

出力引数

すべて折りたたむ

出力イメージ。サイズとデータ型が入力イメージ A と同じである 3 次元数値配列として返されます。

拡張機能

すべて展開する

バージョン履歴

R2016b で導入

すべて展開する