Main Content

grayslice

マルチレベルしきい値法を使用してグレースケール イメージをインデックス付きイメージに変換

説明

X = grayslice(I,N) は、マルチレベルしきい値法を使用してグレースケール イメージをインデックス付きイメージに変換します。この関数は、しきい値の数 N に基づいて、しきい値を自動的に計算します。しきい値の計算の詳細については、アルゴリズムを参照してください。

X = grayslice(I,thresholds) は、指定されたしきい値のセットを使用した入力イメージのマルチレベルしきい値法によるインデックス付きイメージを返します。

すべて折りたたむ

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

I = imread('snowflakes.png');

強度イメージをしきい値処理して、インデックス付きイメージを返します。

X = grayslice(I,16);

元のイメージと、インデックス付きイメージ (標準のカラーマップのいずれかを使用) を表示します。

imshow(I)

figure
imshow(X,jet(16))

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

I = imread('coins.png');
imshow(I)

マルチレベルしきい値法のしきい値を指定します。

thresholds = [45 65 84 108 134 157 174 189 206 228];

入力グレースケール イメージをインデックス付きイメージに変換します。

X = grayslice(I,thresholds);

インデックス付きイメージを表示します。インデックス付きイメージのカラーマップを jet に設定します。カラーマップの長さ m は、インデックス付きイメージ内の最大強度値です。

m = double(max(X(:)));

figure
imshow(X,colormap(jet(m)))

入力引数

すべて折りたたむ

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

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

しきい値の数。正のスカラーとして指定します。この値は、マルチレベルしきい値法で使用するしきい値の総数を表します。

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

しきい値のセット。数値ベクトルとして指定します。マルチレベルしきい値法で使用するしきい値の数は length(thresholds) に等しくなります。

イメージのデータ型しきい値の範囲
uint8[0, 255]
int16 または uint16[0, 65535]
single または double[0, 1]

メモ

データ型 int16 のイメージのしきい値処理を行う前に、関数 grayslice は、各ピクセルに 32,768 を加算してイメージを uint16 に変換します。データ型 int16 の入力イメージのしきい値を指定するときは、この加算オフセットを考慮します。

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

出力引数

すべて折りたたむ

出力インデックス付きイメージ。入力グレースケール イメージと同じサイズの m 行 n 列の行列として返されます。X のデータ型は、マルチレベルしきい値法で使用するしきい値の数によって異なります。

  • しきい値の数が 256 個未満の場合、X のデータ型は uint8 です。この場合、X の強度値の範囲は、[0, N-1] または [0, length(thresholds)] です。

  • しきい値の数が 256 個以上の場合、X のデータ型は double です。この場合、X の強度値の範囲は、[1, N] または [1, length(thresholds)+1] です。

データ型: uint8 | double

ヒント

  • 適切な長さのカラーマップに imshow(X,map) を使用して、しきい値が設定されたイメージを表示できます。

アルゴリズム

この関数は、入力グレースケール イメージに対してマルチレベルしきい値法を実行し、出力としてインデックス付きイメージを返します。しきい値の数 N を指定した場合、grayslice は、これらのしきい値に従ってピクセルを N 個のインデックスに割り当てます。

  • X の最初のインデックスは、範囲 max_intensity×[0,1N) のグレースケール ピクセルで構成されています。

  • X の k 番目のインデックスは、範囲 max_intensity×[k1N,kN) のグレースケール ピクセルで構成されています。

  • X の最後のインデックスは、範囲 max_intensity×[N1N,1] のグレースケール ピクセルで構成されています。

max_intensity は、入力イメージのデータ型によって異なります。

イメージのデータ型max_intensity
uint8255
int16 または uint1665535
single または double1

メモ

データ型 int16 のイメージのしきい値処理を行う前に、関数 grayslice は、各ピクセルに 32,768 を加算してイメージを uint16 に変換します。

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する

参考