ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

imbinarize

しきい値処理による 2 次元グレースケール イメージまたは 3 次元ボリュームの 2 値化

説明

BW = imbinarize(I) は、グローバルに決定されるしきい値より上の値をすべて 1 に置き換え、その他の値をすべて 0 に設定して 2 次元または 3 次元のグレースケール イメージ I からバイナリ イメージを作成します。既定の設定では、imbinarize は Otsu 法を使用し、しきい値処理された黒と白のピクセルの級内分散を最小にするしきい値を選択します [1]imbinarize は 256 個のビンのイメージ ヒストグラムを使用して Otsu のしきい値を計算します。別のヒストグラムを使用するには、otsuthresh を参照してください。

BW = imbinarize(I,method) は、method:'global' または 'adaptive' で指定されたしきい値処理メソッドを使用してイメージ I からバイナリ イメージを作成します。

BW = imbinarize(I,T) はしきい値 T を使用してイメージ I からバイナリ イメージを作成します。T はスカラー輝度値として指定したグローバル イメージしきい値、または輝度値の行列として指定した局所的な適応しきい値です。

BW = imbinarize(I,'adaptive',Name,Value) は、適応しきい値の特性を制御する名前と値のペアを使用してイメージ I からバイナリ イメージを作成します。

すべて折りたたむ

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

I = imread('coins.png');

イメージをバイナリ イメージに変換します。

BW = imbinarize(I);

元のイメージの横にバイナリ バージョンを表示します。

figure
imshowpair(I,BW,'montage')

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

I = imread('rice.png');

グレースケール イメージをバイナリ イメージに変換します。

BW = imbinarize(I, 'adaptive');

元のイメージとバイナリ バージョンを並べて表示します。

figure
imshowpair(I,BW,'montage')

グレースケール イメージをワークスペースに読み取って表示します。

I = imread('printedtext.png');
figure
imshow(I)
title('Original Image')

適応しきい値処理を使用してイメージをバイナリ イメージに変換します。前景が背景より暗いことを示すために、ForegroundPolarity パラメーターを使用します。

BW = imbinarize(I,'adaptive','ForegroundPolarity','dark','Sensitivity',0.4);

イメージのバイナリ バージョンを表示します。

figure
imshow(BW)
title('Binary Version of Image')

3 次元グレースケール強度データをワークスペースに読み込みます。

load mristack;
V = mristack;

3 次元ボリュームを表示します。

figure
slice(double(V),size(V,2)/2,size(V,1)/2,size(V,3)/2)
colormap gray 
shading interp

強度ボリュームを 3 次元バイナリ ボリュームに変換します。

J = imbinarize(V);

3 次元 バイナリ ボリュームを表示します。

figure
slice(double(J),size(J,2)/2,size(J,1)/2,size(J,3)/2)
colormap gray 
shading interp

入力引数

すべて折りたたむ

入力イメージ。2 次元グレースケール イメージまたは 3 次元グレースケール ボリュームとして指定します。imbinarize では、データ型 double および single のピクセル値が [0, 1] の範囲内にあると想定しています。関数 rescale を使用して、想定される範囲にピクセル値を調整できます。

メモ

imbinarize は、RGB イメージをボリューム グレースケール イメージとして解釈し、各チャネルを個別に 2 値化しません。RGB イメージからバイナリ イメージを生成するには、まず rgb2gray を使用してイメージをグレースケール イメージに変換します。

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

イメージの 2 値化に使用するメソッド。次のいずれかの値に指定します。

平均

'global'

Otsu 法を使用してグローバル イメージしきい値を計算します。Otsu 法の詳細については、graythresh を参照してください。

'adaptive'

選択された適応的なイメージのしきい値を、各ピクセル周辺の局所的な 1 次統計量を使用して局所的に計算します。詳細は、adaptthresh を参照してください。Inf または NaN がイメージに含まれている場合、'adaptive' メソッドの imbinarize の動作は定義されません。InfNaN の伝播を Inf および NaN のピクセルの近傍のみに制限することはできません。

データ型: char | string

輝度のしきい値。範囲 [0, 1] の値を持つ数値スカラーまたは数値配列として指定します。

  • T が数値スカラーの場合、imbinarizeT をグローバル イメージしきい値として解釈します。グローバル イメージしきい値を計算するには、graythresh または otsuthresh を使用します。

  • T が数値配列の場合、imbinarizeT を局所的な適応しきい値として解釈します。局所的な適応しきい値を計算するには、adaptthresh を使用します。

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

名前と値のペアの引数

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

例: BW = imbinarize(I,'adaptive','Sensitivity',0.4);

適応しきい値処理の感度係数。'Sensitivity' と [0, 1] の範囲の数値で構成されるコンマ区切りのペアとして指定します。感度の値を高くすると、前景としてしきい値処理されるピクセルが多くなります。ただし、一部の背景ピクセルが含まれる危険性もあります。

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

どのピクセルが適応しきい値処理の前景ピクセルと見なされるかを決定します。'ForegroundPolarity' と次の値のいずれかで構成されるコンマ区切りのペアとして指定します。

意味

'bright'

前景が背景より明るい。

'dark'

前景が背景より暗い。

データ型: char | string

出力引数

すべて折りたたむ

出力バイナリ イメージ。I と同じサイズの logical 行列または logical 配列として返されます。

データ型: 論理値

ヒント

  • インデックス付きイメージからバイナリ イメージを生成するには、まず ind2gray を使用してイメージをグレースケール イメージに変換します。

アルゴリズム

'adaptive' メソッドは局所的な適応しきい値を使用してイメージを 2 値化します。imbinarize はピクセルの近傍周辺の局所的な平均強度を使用して各ピクセルのしきい値を計算します この手法はブラッドリー法とも呼ばれます[2]。また、'adaptive' メソッドはイメージ サイズの約 8 分の 1 (2*floor(size(I)/16)+1 として計算) となる近傍サイズを使用します。これとは異なる局所的な 1 次統計量または近傍サイズを使用する場合は、adaptthresh を参照してください。

参照

[1] Otsu, N., "A Threshold Selection Method from Gray-Level Histograms." IEEE Transactions on Systems, Man, and Cybernetics. Vol. 9, No. 1, 1979, pp. 62–66.

[2] Bradley, D., G. Roth, "Adapting Thresholding Using the Integral Image," Journal of Graphics Tools. Vol. 12, No. 2, 2007, pp.13–21.

拡張機能

R2016a で導入