Matlabはバイナリイメージの小さなオブジェクトを削除しますbwareaopen



Matlab Removes Binary Image Small Objects Bwareaopen



から: https://ww2.mathworks.cn/help/images/ref/bwareaopen.html

バイナリイメージから小さなオブジェクトを削除します



ページ内ですべて折りたたむ

構文

BW2 = bwareaopen(BW,P)



BW2 = bwareaopen(BW,P,conn)

説明

BW2 = bwareaopen( BWP )。P未満の接続されたすべてのコンポーネント(オブジェクト)を削除しますバイナリイメージBWからのピクセル、別のバイナリイメージBW2を生成します。この操作は、 エリアオープニング



BW2 = bwareaopen( BWPconn )。接続されているすべてのコンポーネントを削除します。ここで、conn必要な接続を指定します。

すべて折りたたむ

50ピクセル未満の画像内のオブジェクトを削除する

この例を試してください

バイナリイメージを読み取ります。

BW = imread('text.png')

bwareaopenを使用して、50ピクセル未満のオブジェクトを削除します関数。

BW2 = bwareaopen(BW, 50)

形態学的に開いた画像の横に元の画像を表示します。

imshowpair(BW,BW2,'montage')

入力引数

すべて折りたたむ

BW —バイナリイメージ
任意の次元の実数、非スパース、論理または数値配列

任意の次元の非スパース、論理、または数値配列として指定されたバイナリイメージ。

例: BW2 = bwareaopen(BW, 50)

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

P —オブジェクトの最大ピクセル数
非負、整数値、数値スカラー

非負の整数値の数値スカラーとして指定された、オブジェクトの最大ピクセル数。

例: BW2 = bwareaopen(BW, 50)

データ型: double

conn —ピクセル接続
4 | 8 | 6 | 18 | 26 | 0 sと1 sの3行3列...行3列の行列

この表の値の1つとして指定されているピクセル接続。デフォルトの接続は8です。 2D画像の場合、および26 3D画像用。

意味

二次元の接続性

4接続

ピクセルは、エッジが接触すると接続されます。隣接する2つのピクセルは、両方がオンで、水平方向または垂直方向に沿って接続されている場合、同じオブジェクトの一部です。

8接続

ピクセルは、エッジまたはコーナーが接触すると接続されます。隣接する2つのピクセルは、両方がオンで、水平、垂直、または斜めの方向に沿って接続されている場合、同じオブジェクトの一部です。

三次元接続性

6接続

ピクセルは、顔が接触すると接続されます。隣接する2つのピクセルは、両方がオンで接続されている場合、同じオブジェクトの一部です。

  • これらの方向の1つ:イン、アウト、左、右、上、下

18接続

ピクセルは、その面またはエッジが接触すると接続されます。隣接する2つのピクセルは、両方がオンで接続されている場合、同じオブジェクトの一部です。

  • これらの方向の1つ:イン、アウト、左、右、上、下

  • 右下または上などの2つの方向の組み合わせ

26-接続

ピクセルは、面、エッジ、またはコーナーが接触すると接続されます。隣接する2つのピクセルは、両方がオンで接続されている場合、同じオブジェクトの一部です。

  • これらの方向の1つ:イン、アウト、左、右、上、下

  • 右下または上などの2つの方向の組み合わせ

  • 右上または左下などの3つの方向の組み合わせ

高次元の場合、bwareaopenデフォルト値を使用 conndef (ndims(BW)、 'maximal')

接続性は、0 sと1 sの3x 3 x ... x 3の行列を指定することにより、任意の次元に対してより一般的な方法で定義することもできます。 1値の要素は、connの中心要素を基準にした近隣の場所を定義します。 connに注意してください中心要素に関して対称である必要があります。見る カスタム接続の指定 詳細については。

データ型: double | logical

出力引数

すべて折りたたむ

BW2 —形態学的に開かれた画像
任意の次元の非スパース論理配列

形態学的に開かれ、と同じサイズの非スパース論理配列として指定された画像 BW

アルゴリズム

基本的な手順は次のとおりです

  1. 接続されているコンポーネントを特定します。

    CC = bwconncomp(BW, conn)
  2. 各コンポーネントの面積を計算します。

    S = regionprops(CC, 'Area')
  3. 小さなオブジェクトを削除します。

    L = labelmatrix(CC) BW2 = ismember(L, find([S.Area] >= P))