Main Content

applycform

デバイス非依存の色空間変換を適用

説明

B = applycform(A,C)A にある色の値を色変換構造体 C で指定された色空間に変換します。

すべて折りたたむ

sRGB 色空間を使用するカラー イメージをワークスペースに読み取ります。

rgb = imread('peppers.png');

sRGB から L*a*b* への変換を定義する色変換構造体を作成します。

C = makecform('srgb2lab');

関数 applycform を使用して変換を実行します。

lab = applycform(rgb,C);

入力引数

すべて折りたたむ

入力色空間。次のいずれかの値を指定します。

  • 2 次元数値行列。applycform は各行を、色変換構造体 C にグレースケールの ICC プロファイルが含まれていない限り、色として解釈します。その場合、applycformA にある各ピクセルを色として解釈します。

  • 3 次元数値行列。各行と列の場所は色と解釈されます。size(A,3) は通常 1 以上で、入力色空間で決まります。

  • string または文字ベクトル。A は単なる string または文字ベクトルです。ただし C が次の構文で作成されたときだけです。

    C = makecform('named', profile, space)

データ型: double | uint8 | uint16 | char | string

色変換。構造体として指定します。色変換構造体は、さまざまな変換パラメーターを指定します。makecform を使用して色変換構造体を作成できます。

出力引数

すべて折りたたむ

出力色空間。数値配列として返されます。B のサイズは入力色空間 A の次元とサイズによって異なります。

  • A が 2 次元の場合、B は出力色空間に応じて同じ行数と 1 つ以上の列を持つことができます(ICC 仕様では、現在最大 15 チャネルのデバイス空間がサポートされています)。

  • A が 3 次元の場合、B は、A と同じ行数と列数で、出力色空間に応じて、size(B,3) は 1 以上になります。

アルゴリズム

関数 applycform は、入力色空間値が符号化規則に従うと仮定します。"符号化" とは、さまざまなデータ型の色値と数値のマッピングのことです。たとえば、データ型が double である RGB イメージの場合、最大彩度は 1.0 という値で表されます。データ型が uint8 である RGB イメージの場合、最大彩度は 255 という値で表されます。

L*a*b* 色空間の場合、関数 applycform は、関数 lab2double のページの「アルゴリズム」のセクションで説明されている符号化規則に値が従うと仮定します。

RGB 色空間および CMYK 色空間の場合、関数 applycform は、データ型の範囲に合わせて値がスケーリングされると仮定します。データ型とデータ値の範囲が一致しない場合、値を再スケーリングするか、正しいデータ型となるようにデータを変換します。

  • この関数は、データ型 double の値の範囲が [0, 1] であると仮定します。

  • この関数は、データ型 uint8 の値の範囲が [0, 255] であると仮定します。

  • この関数は、データ型 uint16 の値の範囲が [0, 65535] であると仮定します。

バージョン履歴

R2006a より前に導入