Main Content

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

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')

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

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

I = imread('rice.png');

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

BW = imbinarize(I, 'adaptive');

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

figure
imshowpair(I,BW,'montage')

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

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

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

Figure contains an axes object. The axes object with title Original Image contains an object of type image.

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

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

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

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

Figure contains an axes object. The axes object with title Binary Version of Image contains an object of type 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

Figure contains an axes object. The axes object contains 3 objects of type surface.

強度ボリュームを 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

Figure contains an axes object. The axes object contains 3 objects of type surface.

入力引数

すべて折りたたむ

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

メモ

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

データ型: 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

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: BW = imbinarize(I,"adaptive",Sensitivity=0.4); は感度係数を 0.4 として指定します。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: BW = imbinarize(I,"adaptive","Sensitivity",0.4); は感度係数を 0.4 として指定します。

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

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

どのピクセルが適応しきい値処理の前景ピクセルと見なされるかを決定します。次のいずれかの値で指定します。

意味

"bright"

前景が背景より明るい。

"dark"

前景が背景より暗い。

データ型: char | string

出力引数

すべて折りたたむ

出力バイナリ イメージ。I と同じサイズの logical 行列または 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 で導入