Main Content

cmunique

カラーマップ内で重複している色を削除したり、グレースケールまたはトゥルーカラーのイメージをインデックス付きイメージに変換したりする

説明

[Y,newmap] = cmunique(X,map) は、カラーマップ map から重複する行を削除して、新しいカラーマップ newmap を生成します。また、この関数は、インデックスとカラーマップの間の対応を維持しながら強度イメージ X 内のインデックスを調整し、その結果を Y に返します。イメージ Y とそれに関連するカラーマップ newmap は、X および map で作成したイメージと同じイメージを作成しますが、可能な限り最小のカラーマップを使用します。

[Y,newmap] = cmunique(RGB) は、トゥルーカラー イメージ RGB をインデックス付きイメージ Y および関連するカラーマップ newmap に変換します。返されるカラーマップは、イメージについて可能な限り最小のカラーマップであり、RGB 内にある一意の色のそれぞれに対してエントリが 1 つあります。

メモ

newmap は、非常に大きくなることがあります。これは、エントリ数が RGB のピクセル数並みに多くなる可能性があるためです。

[Y,newmap] = cmunique(I) は、グレースケール イメージ I をインデックス付きイメージ Y および関連するカラーマップ newmap に変換します。返されるカラーマップは、イメージについて可能な限り最小のカラーマップであり、I 内にある一意の強度レベルのそれぞれに対してエントリが 1 つあります。

すべて折りたたむ

関数 magic を使用して、4 行 4 列の配列として X を定義します。これは、1 から 16 までのすべての値を使用します。

X = magic(4);

関数 gray を使用して、8 エントリのカラーマップを作成します。次に、この 8 エントリのカラーマップを 2 つ連結して、16 エントリのカラーマップ map を作成します。map の 9 ~ 16 番目のエントリは、1 ~ 8 番目のエントリの繰り返しです。

map = [gray(8); gray(8)];
size(map)
ans = 1×2

    16     3

関数 cmunique を使って、カラーマップの中の重複エントリを削除します。

[Y, newmap] = cmunique(X, map);
size(newmap)
ans = 1×2

     8     3

cmunique は、Y および newmapX および map と同じイメージを生成するように、元のイメージ X の値を調整します。

figure
image(X)
colormap(map)
title('X and map')

Figure contains an axes object. The axes object with title X and map contains an object of type image.

figure
image(Y)
colormap(newmap)
title('Y and newmap')

Figure contains an axes object. The axes object with title Y and newmap contains an object of type image.

入力引数

すべて折りたたむ

重複する色を含むインデックス付きイメージ。m 行 n 列の整数行列として指定します。

データ型: double | uint8 | uint16

インデックス付きイメージ X に関連し、重複する色を含むカラーマップ。範囲 [0, 1] の値をもつ c1 行 3 列の行列として指定します。map の各行は、カラーマップの各色を構成する赤、緑、青の成分を指定する RGB 3 成分です。

データ型: double

RGB イメージ。m×n×3 の非負の数の配列として指定します。

データ型: double | uint8 | uint16

グレースケール イメージ。m 行 n 列の数値行列として指定します。

データ型: double | uint8 | uint16

出力引数

すべて折りたたむ

一意の色を含むインデックス付きイメージ。m 行 n 列の整数行列として返されます。newmap の長さが 256 以下の場合、出力イメージのクラスは uint8 です。そうでない場合、出力イメージは、クラス double です。

データ型: double | uint8

出力インデックス付きイメージ Y に関連し、一意の色を含むカラーマップ。範囲 [0, 1] の値をもつ c2 行 3 列の行列として返されます。newmap の各行は、カラーマップの各色を構成する赤、緑、青の成分を指定する RGB 3 成分です。

データ型: double

バージョン履歴

R2006a より前に導入