メインコンテンツ

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

imkeepborder

イメージ境界と連結している明るい構造の保持

R2023b 以降

説明

J = imkeepborder(I) は、イメージ I 内で周りのものよりも明るく、イメージの境界に連結している構造のみを保持し、他のすべての構造を非表示にします。I がバイナリ イメージの場合、"構造" は白いピクセルの連結されたグループになります。この関数を使用すると、イメージの境界を維持しながら、境界に接していない構造をクリアできます。出力イメージ J は、入力に応じてグレースケールまたはバイナリになります。

J = imkeepborder(I,Name=Value) は、1 つ以上の名前と値の引数を使用して、境界構造の選択に関するオプションを指定します。たとえば、imkeepborder(I,Borders=["left" "right"]) は、左または右のイメージ境界に接する構造のみを保持します。

すべて折りたたむ

バイナリ イメージ (石英の微細柱状粒子のイメージを後処理したもの [2]) をワークスペースに読み取って表示します。

originalBW = imread("quartz_columns.png");
imshow(originalBW)

Figure contains an axes object. The hidden axes object contains an object of type image.

イメージ内でイメージ境界に連結している明るいオブジェクトのみを保持し、残りを削除します。

BWborder=imkeepborder(originalBW);
imshow(BWborder)

Figure contains an axes object. The hidden axes object contains an object of type image.

バイナリ イメージをワークスペースに読み取って表示します。このイメージは、石英の微細柱状粒子のイメージを後処理したものです [2]。

originalBW = imread("quartz_columns.png");
imshow(originalBW)

Figure contains an axes object. The hidden axes object contains an object of type image.

イメージの上または下の境界と連結しているオブジェクトのみを保持し、残りを削除します。

BWkeep2B = imkeepborder(originalBW,Borders=["top" "bottom"]);
imshow(BWkeep2B)

Figure contains an axes object. The hidden axes object contains an object of type image.

入力引数

すべて折りたたむ

グレースケールまたはバイナリ イメージ。数値配列または logical 配列として指定します。

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

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: imkeepborder(I,Borders=["left" "right"]) は、イメージの左または右のイメージ境界に接する明るい構造を保持します。

構造を保持するイメージ境界。string のベクトルまたは 01 から成る N 行 2 列の行列として指定します。

  • string のベクトル — 2 次元イメージのどの境界で構造を保持するかを、"left""right""top"、および "bottom" の任意の組み合わせとして指定します。I を 2 次元イメージとして指定した場合、Borders の既定値は ["left" "right" "top" "bottom"] です。

  • 01 から成る N 行 2 列の行列 — 構造を保持する N 次元イメージの境界を指定します。ここで、各行の最初の要素は対応する次元の最初の境界を表し、2 番目の要素はその次元の 2 番目の境界を表します。たとえば、Borders(k,1)1 の場合、k 番目の次元で最初の境界に接する構造が選択されます。Borders(k,2)1 の場合、k 番目の次元で 2 番目の境界に接する構造が選択されます。たとえば、Borders = [0 0; 1 1; 0 0] と指定することは、Borders = ["left" "right"] と指定することと等価です。N 次元イメージの Borders の既定値は ones(ndims(I),2) です。これは、イメージのどの境界に接する構造も保持するよう指定します。

ピクセルの連結性。次の表のいずれかの値、または 01 から成る 3×3×...×3 の行列として指定します。既定の連結性は 2 次元イメージでは 8、3 次元イメージでは 26 です。

意味

2 次元連結性

4

ピクセルのエッジの部分が接触している場合、ピクセルは連結されます。ピクセルの近傍は水平方向または垂直方向に隣接するピクセルです。

3-by-3 pixel neighborhood with four pixels connected to the center pixel

現在のピクセルを灰色で示します。

8

ピクセルのエッジまたはコーナーが接触している場合、ピクセルは連結されます。ピクセルの近傍は水平方向、垂直方向または対角方向に隣接するピクセルです。

3-by-3 pixel neighborhood with 8 pixels connected to the center pixel

現在のピクセルを灰色で示します。

3 次元連結性

6

面が接触している場合、ピクセルは連結されます。ピクセルの近傍は次のように隣接するピクセルです。

  • 次のいずれかの方向: 奥、手前、左、右、上および下

3-by-3-by-3 pixel neighborhood with 6 pixels connected to the faces of the center pixel

現在のピクセルを灰色で示します。

18

面またはエッジが接触している場合、ピクセルは連結されます。ピクセルの近傍は次のように隣接するピクセルです。

  • 次のいずれかの方向: 奥、手前、左、右、上および下

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

3-by-3-by-3 pixel neighborhood with 6 pixels connected to the faces and 12 pixels connected to the edges of the center pixel

現在のピクセルは立方体の中心です。

26

面、エッジまたはコーナーが接触している場合、ピクセルは連結されます。ピクセルの近傍は次のように隣接するピクセルです。

  • 次のいずれかの方向: 奥、手前、左、右、上および下

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

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

3-by-3-by-3 pixel neighborhood with 6 pixels connected to the faces, 12 pixels connected to the edges, and 8 pixels connected to the corners of the center pixel

現在のピクセルは立方体の中心です。

高次元の場合、imkeepborder は既定値 conndef(ndims(I),"maximal") を使用します。

連結性は、01 から成る 3×3×...×3 の行列を指定し、任意の次元に対してより一般的に定義することもできます。1 の値を持つ要素は、conn の中心要素に対する近傍の位置を定義します。conn は、その中心要素に関して対称でなければなりません。詳細については、カスタム連結性の定義を参照してください。

データ型: double | logical

出力引数

すべて折りたたむ

処理されたグレースケールまたはバイナリ イメージ。指定した入力イメージに応じて、数値配列または logical 配列として返されます。

アルゴリズム

imkeepborder はモルフォロジー再構成を使用します。

  • マスク イメージは入力イメージです。

  • マーカー イメージは境界沿いを除きすべて 0 で、マスク イメージと等しくなります。

参照

[1] Soille, Pierre. Morphological Image Analysis: Principles and Applications Berlin ; New York: Springer, 1999, 164–165.

[2] Molnar, Ian. Uniform quartz - Silver nanoparticle injection experiment, Digital Rocks Portal (April 2016). Accessed March 10, 2023. https://www.digitalrocksportal.org/projects/44, made available under the ODC-BY 1.0 Attribution License.

拡張機能

すべて展開する

バージョン履歴

R2023b で導入