Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

bwtraceboundary

バイナリ イメージのオブジェクトをトレース

説明

B= bwtraceboundary(BW,P,fstep)は、バイナリ イメージBW内のオブジェクトの輪郭をトレースします。非ゼロ ピクセルはオブジェクトに属し、ゼロ値ピクセルは背景になります。Pはトレースを開始するオブジェクト境界の点の行と列座標を指定します。fstepPに連結している隣接オブジェクト ピクセルの初期探索方向を指定します。Bは、領域の境界ピクセルの行と列座標を保持します。

B= bwtraceboundary(BW,P,fstep,conn)は境界をトレースします。ここで、connは必要な連結性を指定します。

B= bwtraceboundary(BW,P,fstep,conn,m,dir)は、抽出する最大境界ピクセル数であるmと境界をトレースする方向であるdirを指定します。既定では、bwtraceboundaryは境界にあるすべてのピクセルを識別します。

すべて折りたたむ

イメージを読み取り、それを表示します。

BW = imread('blobs.png'); imshow(BW)

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

イメージ内のオブジェクトを選択し、境界をトレースします。オブジェクトを選択するには、境界上のピクセルを指定します。この例では、impixelinfoを使用した視覚的検査で得られる太線の白い円の境界上にあるピクセルの座標を使用します。既定では、bwtraceboundaryは境界にあるすべてのピクセルを識別します。

r1 = 163; c1 = 37; contour = bwtraceboundary(BW,[r1 c1],'W');

輪郭をイメージにプロットします。

holdonplot(contour(:,2),contour(:,1),'g','LineWidth',2)

Figure contains an axes object. The axes object contains 2 objects of type image, line.

2 番目のオブジェクトの境界上にある点を選択します。この例では、最大の四角形の左上隅近くにあるピクセルの座標を使用します。最初の 50 個の境界ピクセルを時計回りの方向にトレースします。

r2 = 68; c2 = 95; contourCW = bwtraceboundary(BW,[r2 c2],'W',8,50,'clockwise');

2 番目のオブジェクトの境界上にある同じ点から、最初の 50 個の境界ピクセルを反時計回りの方向にトレースします。

contourCCW = bwtraceboundary(BW,[r2 c2],'W',8,50,'counterclockwise');

イメージ上に時計回りの輪郭を赤でプロットします。イメージ上に反時計回りの輪郭を青でプロットします。

plot(contourCW(:,2),contourCW(:,1),'r','LineWidth'2)图(contourCCW (:, 2), contourCCW (: 1),'b','LineWidth',2)

Figure contains an axes object. The axes object contains 4 objects of type image, line.

入力引数

すべて折りたたむ

バイナリ イメージ。2 次元数値行列または logical 行列として指定します。

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

トレースを開始するオブジェクトの境界上にある開始点の座標。[row column]の形式で 2 要素ベクトルとして指定します。

データ型:double

Pに連結している隣接オブジェクト ピクセルの初期探索方向。次の図で示す string スカラーまたは文字ベクトルとして指定します。

メモ

連結性conn4であるとき、fstep“N”'E''S'および'W'の値に制限されています。

データ型:char|string

ピクセルの連結性。8または4として指定します。

平均

2 次元連結性

4 連結

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

8 連結

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

データ型:double

抽出する境界ピクセルの最大数。正の整数として指定します。既定では、mInfで、bwtraceboundaryは境界にあるすべてのピクセルを識別します。

データ型:double

境界のトレース方向。'clockwise'または'counterclockwise'を指定します。

データ型:char|string

出力引数

すべて折りたたむ

領域の境界ピクセルの行座標と列座標。q 行 2 列の行列として返されます。Bの各行は[row column]の形式になります。

アルゴリズム

関数bwtraceboundaryは、Jacob の停止条件によって変更された Moore-Neighbor トレース アルゴリズムを実装します。この関数は、『Digital Image Processing Using MATLAB, by Gonzalez, R. C., R. E. Woods, and S. L. Eddins, New Jersey, Pearson Prentice Hall, 2004』の初版にある関数boundariesに基づいています。

参照

[1] Gonzalez, R. C., R. E. Woods, and S. L. Eddins, Digital Image Processing Using MATLAB, New Jersey, Pearson Prentice Hall, 2004.

拡張機能

バージョン履歴

R2006a より前に導入