Main Content

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

im2bw

(非推奨) しきい値に基づき、イメージをバイナリ イメージに変換

im2bw は推奨されません。代わりに imbinarize を使用してください。詳細については、互換性の考慮事項を参照してください。

説明

BW = im2bw(I,level) は、入力イメージで輝度が level を超えるすべてのピクセルを値 1 (白色) で置き換え、他のすべてのピクセルを値 0 (黒色) で置き換えることで、グレースケール イメージ I をバイナリ イメージ BW に変換します。

この範囲はイメージのクラスに可能な信号レベルに比例します。したがって、level 値の 0.5 は、クラスの最小値と最大値の中間の強度値に対応します。

BW = im2bw(X,cmap,level) は、インデックス付きイメージ X とカラーマップ cmap をバイナリ イメージに変換します。

BW = im2bw(RGB,level) は、トゥルーカラー イメージ RGB をバイナリ イメージに変換します。

すべて折りたたむ

load trees
BW = im2bw(X,map,0.4);
imshow(X,map), figure, imshow(BW)

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

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

入力引数

すべて折りたたむ

2 次元グレースケール イメージ。m 行 n 列の数値行列を指定します。

データ型: single | double | int16 | uint8 | uint16

2 次元のインデックス付きイメージ。m 行 n 列の数値行列として指定します。

データ型: single | double | int16 | uint8 | uint16

インデックス付きイメージ X に関連付けられたカラーマップ。範囲 [0, 1] の値をもつ c 行 3 列の数値行列として指定します。各行は、カラーマップの単一色を構成する赤、緑、青の成分を指定する 3 要素の RGB 3 成分です。

データ型: single | double | int16 | uint8 | uint16

2 次元の RGB イメージ。m x n x 3 の数値行列として指定します。

データ型: single | double | int16 | uint8 | uint16

輝度のしきい値。[0, 1] の範囲の数値として指定します。level を計算するには、関数 graythresh を使用することができます。

データ型: single | double | int16 | uint8 | uint16

出力引数

すべて折りたたむ

バイナリ イメージ。m 行 n 列の logical 行列として返されます。

データ型: logical

アルゴリズム

入力イメージがグレースケール イメージでない場合、im2bw は、ind2gray または rgb2gray を使用して入力イメージをグレースケール イメージに変換し、このグレースケール イメージをしきい値を使用してバイナリに変換します。

バージョン履歴

R2006a より前に導入

すべて折りたたむ

R2016a: im2bw は非推奨

im2bw の既定の輝度のしきい値は、ほとんどのイメージに対して最適ではありません。イメージに適したしきい値を使用する場合は、graythresh を使用してレベルを計算してから im2bw を呼び出さなければなりません。

R2016a では、関数 imbinarize が導入されました。この関数は、輝度のしきい値を計算し、1 ステップで 2 値化を実行します。imbinarize には、イメージのシェーディングが一様でない場合に適応しきい値処理を実行できるなどの別の利点があります。詳細については、Image Binarization - New 2016a Functions を参照してください。

im2bw の代表的な使用法と、代わりに imbinarize を使用するためのコードの更新方法を、次の表に示します。

非推奨推奨
BW = im2bw(I);
BW = imbinarize(I,0.5);
thresh = graythresh(I);
BW = im2bw(I,thresh);
BW = imbinarize(I);

現時点では im2bw を削除する予定はありません。