このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
grayconnected
塗りつぶし手法の使用による類似した濃淡値の連続イメージ領域の選択
説明
例
塗りつぶし手法を使用したイメージのセグメント化
グレースケール イメージを読み取り、それを表示します。
I = imread('cameraman.tif');
imshow(I)
塗りつぶし手法を使用して、イメージ内の空をセグメント化します。空のピクセルを選択して、シード位置とします。この例では、("行", "列") 座標が (50, 50) のピクセルを使用します。関数 grayconnected
を呼び出し、セグメント化するイメージとこのシード位置を指定します。
J = grayconnected(I,50,50);
関数 labeloverlay
を使用して、元のイメージの上に、セグメント化された領域を色付きで表示します。セグメント化された領域には、シード ピクセルに 8 連結された空のピクセルが含まれています。この領域には、連結されていない類似した強度のピクセルは含まれていません。たとえば、三脚の脚の間に見えている空などです。
imshow(labeloverlay(I,J))
塗りつぶし手法を使用して、カメラマンのジャケットをセグメント化します。ジャケットのピクセルを選択して、シード位置とします。この例では、("行", "列") 座標が (110, 65) のシード ピクセルを指定します。関数 grayconnected
を呼び出し、セグメント化するイメージとこのシード位置を指定します。
J2 = grayconnected(I,110,65);
元のイメージの上に、セグメント化されたイメージを色付きで表示します。セグメント化された領域には、シード ピクセルに 8 連結されたすべてのピクセルが含まれています。三脚とカメラマンの髪はジャケットと類似した強度なので、セグメント化された領域に含まれています。
imshow(labeloverlay(I,J2))
連結ピクセルからのバイナリ マスクの作成
小さいサンプル イメージを作成します。
I = uint8([20 22 24 23 25 20 100 21 19 12 13 12 30 6 22 11 13 12 24 25 5 23 13 13 13 24 25 5 24 27 13 12 12 13 5 25 26 5 28 29 50 6]);
シード位置の行インデックスと列インデックスを指定します。シード位置の値は 23
です。
seedrow = 4; seedcol = 1;
許容誤差を指定します。
tol = 3;
シード位置および許容誤差を指定してマスク イメージを作成します。マスクには、シード ピクセルに 8 連結されており、[20, 26] の範囲の値をもつすべてのピクセルが含まれています。マスクには、グレースケールの値が許容誤差範囲内で、8 連結されていないピクセルは含まれません ((行, 列) 座標が (3, 6) のピクセルなど)。
BW = grayconnected(I,seedrow,seedcol,tol)
BW = 6x7 logical array
1 1 1 1 1 1 0
1 0 0 0 0 0 0
1 0 0 0 0 0 0
1 0 0 0 0 0 0
1 0 0 0 0 0 0
1 1 0 0 0 0 0
入力引数
I
— グレースケール イメージ
数値行列
グレースケール イメージ。数値行列として指定します。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
row
— シード ピクセルの行インデックス
正の整数
シード ピクセルの行インデックス。正の整数として指定します。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
column
— シード ピクセルの列インデックス
正の整数
シード ピクセルの列インデックス。正の整数として指定します。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
tolerance
— 強度値の許容誤差
数値スカラー
マスクに含める強度値の許容誤差。数値スカラーとして指定します。マスクには、値が範囲 [(seedvalue-tolerance),(seedvalue+tolerance)]
のすべてのピクセルが含まれます。既定では、整数値イメージの場合の許容誤差は 32
、浮動小数点イメージの場合は 0.1
です。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
出力引数
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意および制限:
grayconnected
では C コードの生成がサポートされています (MATLAB® Coder™ が必要)。汎用のMATLAB Host Computer
ターゲット プラットフォームを選択した場合、プリコンパイルされたプラットフォーム固有の共有ライブラリを使用するコードが、grayconnected
によって生成されます。共有ライブラリを使用するとパフォーマンスの最適化は維持されますが、コードを生成できるターゲット プラットフォームが限定されます。詳細については、Image Processing Toolbox でサポートされているコード生成のタイプを参照してください。
バージョン履歴
R2015b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)