主要内容

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

bwboundaries

バイナリイメージ内の領域の境界をトレース

説明

B= bwboundaries (BWは,バイナリイメージBWにおいて,オブジェクトの外側の境界をオブジェクトの内部にあるホール(穴)の境界と共にトレースします。またbwboundariesは,一番外側のオブジェクト(親)の内部に入り,子のオブジェクト(親オブジェクトに完全に囲まれたオブジェクト)をトレースします。境界ピクセルの位置の细胞配列Bを返します。

B= bwboundaries (BW康涅狄格州は,オブジェクトの外側の境界をトレースします。ここで,康涅狄格州は親と子の境界をトレースする際に使用する連結性を指定します。

B= bwboundaries (BW康涅狄格州选项は,オブジェクトの外側の境界をトレースします。ここで,选项“黑洞”または“noholes”であり,他のオブジェクト内にある穴の境界を含めるかどうかを指定します。

Bl) = bwboundaries (___は,オブジェクトと穴にラベルが付けられたラベル行列lを返します。

Bln一个) = bwboundaries (___は,見つかったオブジェクト数nと隣接した配列一个を返します。

すべて折りたたむ

グレースケールイメージをワークスペースに読み取ります。

我= imread (“rice.png”);

局所的な適応しきい値処理を使用してグレースケールイメージをバイナリイメージに変換します。

BW = imbinarize(我);

イメージ内の領域の境界を計算し,イメージ上に重ね合わせます。

[B, L] = bwboundaries (BW,“noholes”);imshow (label2rgb (L, @jet,。5.5]))保持k = 1:长度(B)边界= B{k};情节(边界(:,2),边界(:1),' w '“线宽”, 2)结束

图中包含一个坐标轴。轴包含152个类型为image, line的对象。

バイナリイメージをワークスペースに読み取ります。

BW = imread (“blobs.png”);

イメージ内の領域の境界を計算します。

[B, L, N] = bwboundaries (BW);

境界を重ね合わせたイメージを表示します。ラベル行列に基づいて領域番号を各境界の横に追加します。ズームツールを使用して個々のラベルを確認します。

imshow (BW);持有;颜色= [“b”‘g’“r”“c”“米”“y”];k=1:length(B), boundary = B{k};cidx =国防部(k,长度(颜色))+ 1;情节(边界(:,2),边界(:1),...颜色(cidx),“线宽”2);%随机文本位置以获得更好的可视性rndRow =装天花板(长度(边界)/ (mod(兰德* k, 7) + 1));坳=边界(rndRow, 2);行=边界(rndRow, 1);h = text(col+1, row-1, num2str(L(row,col)));集(h,“颜色”、颜色(cidx),“字形大小”14岁的“FontWeight”“大胆”);结束

图中包含一个坐标轴。坐标轴包含图像、线条、文本等79个对象。

関数间谍を使用して隣接行列を表示します。

图间谍(A);

图中包含一个坐标轴。轴包含一个线型对象。

バイナリイメージをワークスペースに読み取ります。

BW = imread (“blobs.png”);

境界を計算します。

[B, L, N] = bwboundaries (BW);

オブジェクトの境界を赤で表示し,穴の境界を緑で表示します。

imshow (BW);持有k=1:length(B), boundary = B{k};如果(k > N) plot(boundary(:,2), boundary(:,1),‘g’“线宽”2);其他的情节(边界(:,2),边界(:1),“r”“线宽”2);结束结束

图中包含一个坐标轴。轴包含40个类型为image, line的对象。

イメージをワークスペースに読み取ります。

BW = imread (“blobs.png”);

親境界を赤で表示し,それらの穴を緑で表示します。

[B, L, N] = bwboundaries (BW);图;imshow (BW);持有遍历对象边界k = 1: N如果是第k列,则边界k是孔的父结点%的邻接矩阵A包含一个非零元素如果(nnz(A(:,k)) > 0) boundary = B{k};情节(边界(:,2),...边界(:1),“r”“线宽”2);%循环遍历边界k的子结点l = find(A(:,k))' boundary = B{l};情节(边界(:,2),...边界(:1),‘g’“线宽”2);结束结束结束

图中包含一个坐标轴。轴包含23个类型为image, line的对象。

入力引数

すべて折りたたむ

バイナリ入力イメージ。2次元の逻辑行列または数値行列として指定します。BWは,非ゼロのピクセルがオブジェクトに属し,ゼロ値のピクセルが背景を構成するバイナリイメージでなければなりません。次の図では,これらの成分を説明します。

データ型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

ピクセルの連結性。次の表のいずれかの値を指定します。

平均

2 次元連結性

4 連結

ピクセルのエッジの部分が接触している場合,ピクセルは連結されます。2つの隣り合ったピクセルは両方とも”“の場合に同じオブジェクトの一部であり,水平方向または垂直方向に連結します。

8 連結

ピクセルのエッジまたはコーナーが接触している場合,ピクセルは連結されます。2つの隣り合ったピクセルは両方とも”“の場合に同じオブジェクトの一部であり,水平方向,垂直方向または対角方向に連結します。

データ型:

親と子の両方の境界を探索するかどうかを決定します。次のいずれかに指定します。

オプション

平均

“黑洞”

オブジェクトと穴の両境界を探索します。これは既定の設定です。

“noholes”

オブジェクト(親と子)の境界を探索します。これにより,パフォーマンスが向上します。

データ型:字符|字符串

出力引数

すべて折りたたむ

境界ピクセルの行座標と列座標。p行1列の细胞配列として返されます。ここでpはオブジェクトと穴の数です。细胞配列内の各セルには,问行2列の行列が含まれています。配列内の各行には境界ピクセルの行座標と列座標が含まれています。问は対応する領域の境界ピクセルの数です。

連続領域のラベル行列。非負の整数から成る 2 次元行列として返されます。k 番目の領域には、値 k をもつl内のすべての要素が含まれています。lで表すオブジェクトと穴の数は,马克斯(L (:))に等しくなります。背景は,lのゼロの値をとる要素で構成されています。

データ型:

検出されたオブジェクトの数。非負の整数として返されます。

データ型:

境界と穴の親子の依存関係。辺の長さが马克斯(L (:))の正方,スパース,クラスの逻辑行列として返されます。一个の行と列はBに格納された境界の位置に対応します。B内の最初のnセルはオブジェクトの境界です。(i, j) = 1は,オブジェクトがオブジェクトjの子オブジェクトであることを意味します。k番目の境界を囲むか,それによって囲まれる境界は,一个を次のように使用すると検出できます。

enclosing_boundary =找到((m,:));enclosed_boundaries =找到((:,m));

アルゴリズム

関数bwboundariesは,雅各の停止条件によって変更されたMoore-Neighborトレースアルゴリズムを実装します。この関数は”,使用MATLAB数字图像处理,冈萨雷斯,r·C。r·e·伍兹和s . l . eddin新泽西,普伦蒂斯霍尔出版社,2004年“の初版にある関数边界に基づいています。

参照

[1] Gonzalez, r.c., r.e. Woods, and S. L. Eddins, Digital Image Processing Using MATLAB, New Jersey, Pearson Prentice Hall, 2004。

拡張機能

R2006aより前に導入