Main Content

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

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

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

入力引数

すべて折りたたむ

グレースケール イメージ。任意の次元の数値配列として指定します。関数 graythresh は関数 reshape を使用して、多次元配列を 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 より前に導入

すべて展開する