ドキュメンテーション

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

graythresh

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

説明

T = graythresh(I) は、Otsu 法 [1] を使用してグレースケール イメージ I からグローバルしきい値 T を計算します。Otsu 法ではしきい値処理された黒と白のピクセルの級内分散を最小にするしきい値が選択されます。グローバルしきい値 T は、グレースケール イメージをバイナリ イメージに変換する imbinarize で使用できます。

[T,EM] = graythresh(I) は有効性測定 EM も返します。

すべて折りたたむ

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

I = imread('coins.png');

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

level = graythresh(I)
level = 0.4941

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

BW = imbinarize(I,level);

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

imshowpair(I,BW,'montage')

入力引数

すべて折りたたむ

グレースケール イメージ。任意の次元の数値配列として指定します。関数 graythreshreshape を使用して、多次元配列を 2 次元配列に変換し、I の非ゼロの虚数部はすべて無視します。

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

出力引数

すべて折りたたむ

グローバルしきい値。範囲 [0, 1] の数値スカラーとして返されます。

データ型: double

しきい値の有効性測定。範囲 [0,1] の正のスカラーとして返されます。下限は、1 つのグレー レベルをもつイメージでのみ求められ、上限は 2 値イメージでのみ求められます。

データ型: 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 より前に導入