Main Content

adaptthresh

局所的な 1 次統計量を使用する適応的なイメージのしきい値

説明

T = adaptthresh(I) は、2 次元グレースケール イメージまたは 3 次元グレースケール ボリューム I のための局所的な適応しきい値を計算します。関数 adaptthresh は各ピクセルの近傍の局所的な平均強度 (1 次統計量) に基づいてしきい値を選択します。しきい値 T は、グレースケール イメージをバイナリ イメージに変換する関数 imbinarize で使用できます。

T = adaptthresh(I,sensitivity) は、より多くのピクセルが前景としてしきい値処理されるように、感度係数を使用して局所的な適応しきい値を計算します。

T = adaptthresh(___,Name=Value) は、しきい値処理の特性を制御する名前と値のペアを使用して局所的な適応しきい値を計算します。

すべて折りたたむ

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

I = imread('rice.png');

adaptthresh により 2 値化演算で使用するしきい値を決定します。

T = adaptthresh(I, 0.4);

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

BW = imbinarize(I,T);

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

figure
imshowpair(I, BW, 'montage')

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

I = imread('printedtext.png');

adaptthresh を使用して適応しきい値を計算し、局所的なしきい値イメージを表示します。これは背景の平均照度を推定したものです。

T = adaptthresh(I,0.4,'ForegroundPolarity','dark');
figure
imshow(T)

局所的な適応しきい値を使用してイメージを 2 値化します。

BW = imbinarize(I,T);
figure
imshow(BW)

3 次元ボリュームをワークスペースに読み込みます。

load mristack;
V = mristack;

データを表示します。

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

しきい値を計算します。

J = adaptthresh(V,'neigh',[3 3 3],'Fore','bright');

しきい値を表示します。

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

入力引数

すべて折りたたむ

グレースケール イメージまたはボリューム。2 次元数値行列または 3 次元数値配列として指定します。

関数 adaptthresh では、データ型が double および single であるイメージの値の範囲は [0, 1] でなければなりません。I が [0, 1] の範囲外の値をもつ場合、関数 rescale を使用して、想定される範囲に値を再スケーリングできます。

イメージに Inf または NaN の値が含まれている場合、adaptthresh の動作は定義されません。Inf または NaN の値の伝播を Inf または NaN のピクセルの近傍のみに制限することはできない場合があります。

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

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

名前と値の引数

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

例: T = adaptthresh(I,0.4,ForegroundPolarity="dark"); は、前景が背景より暗いことを指定します。

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

例: T = adaptthresh(I,0.4,"ForegroundPolarity","dark"); は、前景が背景より暗いことを指定します。

各ピクセル周囲の局所的な統計量を計算するために使用される近傍のサイズ。正の奇数の整数、または正の奇数の整数から成る 2 要素ベクトルとして指定します。

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

どのピクセルが前景ピクセルと見なされるかを決定します。次のいずれかを使用して指定します。

意味

"bright"

前景が背景より明るい。

"dark"

前景が背景より暗い。

データ型: char | string

各ピクセルの局所的なしきい値の計算に使用される統計量。次のいずれかに指定します。

意味

"mean"

近傍の局所的な平均強度。この手法はブラッドリー法とも呼ばれます [1]

"median"

近傍の局所的な中央値。この統計量の計算は遅くなる可能性があります。結果をより高速に取得するためには、使用する近傍のサイズを小さくしてください。

"gaussian"

近傍のガウス加重平均。

データ型: char | string

出力引数

すべて折りたたむ

正規化された強度値。入力イメージまたはボリューム I と同じサイズの数値行列または数値配列として返されます。値は、[0, 1] の範囲にクリップされます。

データ型: double

参照

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

拡張機能

バージョン履歴

R2016a で導入

すべて展開する