ドキュメンテーション

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

graythresh

Otsu 法を使用するグローバル イメージしきい値

構文

level = graythresh(I)
[level,EM] = graythresh(I)

説明

level = graythresh(I) は、グローバルしきい値 level を計算します。これを使用すると、imbinarize で強度イメージをバイナリ イメージに変換できます。関数 graythresh は Otsu 法を使用します。この方式では黒と白のピクセルの級内分散を最小にするしきい値が選択されます [1]

多次元配列は reshape を使用して 2 次元配列に自動的に変換されます。関数 graythreshI の非ゼロの虚数部を無視します。

[level,EM] = graythresh(I) は 2 番目の出力引数として有効性測定 EM を返します。有効性測定は、入力イメージのしきい値設定の有効性を示す範囲 [0 1] 内の値です。下限は、1 つのグレー レベルをもつイメージでのみ求められ、上限は 2 値イメージでのみ求められます。

すべて折りたたむ

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

I = imread('coins.png');

graythresh を使用してしきい値を計算します。しきい値は範囲 [0, 1] に正規化されています。

level = graythresh(I)
level = 0.4941

しきい値を使用してイメージをバイナリ イメージに変換します。

BW = imbinarize(I,level);

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

imshowpair(I,BW,'montage')

入力引数

すべて折りたたむ

強度イメージ。非スパースの 2 次元配列として指定します。

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

出力引数

すべて折りたたむ

グローバルしきい値。正のスカラーとして返されます。level は範囲 [0, 1] の正規化された強度値です。

データ型: double

有効性測定。正のスカラーとして返されます。

データ型: double

ヒント

  • 既定の設定では、関数 imbinarize は Otsu 法で求めたしきい値を使用してバイナリ イメージを作成します。この既定のしきい値は、graythresh で返されるしきい値と同じです。ただし、imbinarize は、バイナリ イメージのみを返します。level または有効性測定を調べる場合は、imbinarize を呼び出す前に graythresh を使用します。

参照

[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.

R2006a より前に導入

この情報は役に立ちましたか?