ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

makecform

色変換構造体を作成

構文

C = makecform(type)
C = makecform(type, 'WhitePoint', WP)
C = makecform(type, 'AdaptedWhitePoint', WP)
C = makecform('srgb2cmyk', 'RenderingIntent', intent)
C = makecform('cmyk2srgb', 'RenderingIntent', intent)
C = makecform('adapt','WhiteStart',WPS, 'WhiteEnd', WPE, 'AdaptModel', modelname)
C = makecform('icc', src_profile, dest_profile)
C = makecform('icc', src_profile, dest_profile, 'SourceRenderingIntent', src_intent, 'DestRenderingIntent', dest_intent)
C = makecform('clut', profile, LUTtype)
C = makecform('mattrc', MatTrc, 'Direction', direction)
C = makecform('mattrc', profile, 'Direction', direction)
C = makecform('mattrc', profile, 'Direction', direction, 'RenderingIntent', intent)
C = makecform('graytrc', profile, 'Direction', direction)
C = makecform('graytrc', profile, 'Direction', direction, 'RenderingIntent', intent)
C = makecform('named', profile, space)

説明

C = makecform(type) は、type で指定した色空間変換を定義する色変換構造体 C を作成します。変換を行うため、色変換構造体を関数 applycform に引数として渡します。

引数 type は、次の表にリストされた変換の中から 1 つを指定します。makecform は、CIE (Commission Internationale de l'Éclairage) で定義されているデバイスに依存しない色空間群の間での変換をサポートしています。加えて、makecform は、sRGB 色空間と CMYK 色空間との間の変換もサポートしています。個々の色空間による Image Processing Toolbox™ で使われる省略形に関して、このリファレンス ページの注意の節を参照してください。

タイプ

説明

'cmyk2srgb'

CMYK 色空間から sRGB 色空間に変換します。

'lab2lch'

L*a*b* から L*ch 色空間に変換します。

'lab2srgb'

代わりに lab2rgb を使用してください。

'lab2xyz'

代わりに lab2xyz を使用してください。

'lch2lab'

L*ch から L*a*b* 色空間に変換します。

'srgb2cmyk'

sRGB から CMYK 色空間に変換します。

'srgb2lab'

代わりに rgb2lab を使用してください。

'srgb2xyz'

代わりに rgb2xyz を使用してください。

'upvpl2xyz'

uvL から XYZ 色空間に変換します。

'uvl2xyz'

uvL から XYZ 色空間に変換します。

'xyl2xyz'

xyY から XYZ 色空間に変換します。

'xyz2lab'

代わりに xyz2lab を使用してください。

'xyz2srgb'

代わりに xyz2rgb を使用してください。

'xyz2upvpl'

XYZ から uvL 色空間に変換します。

'xyz2uvl'

XYZ から uvL 色空間に変換します。

'xyz2xyl'

XYZ から xyY 色空間に変換します。

C = makecform(type, 'WhitePoint', WP) は、基準白色点の値を指定します。type は、'xyz2lab' または 'lab2xyz' のいずれかです。WP は、Y = 1 になるようにスケーリングされた XYZ 値の 1 行 3 列のベクトルです。既定の設定は whitepoint('ICC') です。WP ベクトルを作成するには、関数 whitepoint を使用します。

C = makecform(type, 'AdaptedWhitePoint', WP) は、適応白色点を指定します。type は、'srgb2lab''lab2srgb''srgb2xyz''xyz2srgb' のいずれかです。上記のように、WP は、Y = 1 になるようにスケーリングされた XYZ 値の行ベクトルです。指定されない場合、既定の適応白色点は whitepoint('ICC') になります。変換済みのいくつかの sRGB 式と整合性のある答えを得るには、適応白色点に whitepoint('D65') を指定します。

C = makecform('srgb2cmyk', 'RenderingIntent', intent) および
C = makecform('cmyk2srgb', 'RenderingIntent', intent) は、srgb2cmyk および cmyk2srgb のタイプの変換に対して描画意図を指定します。これらの変換は、sRGB IEC61966-2.1 と "Specifications for Web Offset Publications" (SWOP) CMYK との間でデータを変換します。intent は、次のいずれかの値でなければなりません。'AbsoluteColorimetric''Perceptual''RelativeColorimetric''Saturation'。詳細は、表描画意図を参照してください。

C = makecform('adapt','WhiteStart',WPS, 'WhiteEnd', WPE, 'AdaptModel', modelname) は、線形色適応変換を作成します。WPS および WPE は、Y = 1 になるようにスケーリングされた XYZ 値の行ベクトルで、白色点の開始および終了を指定します。modelname'vonKries' または 'Bradford' のいずれかであり、使用する色適応モデルのタイプを指定します。'AdaptModel' を指定しない場合、既定の設定は 'Bradford' になります。

C = makecform('icc', src_profile, dest_profile) は、2 つの ICC プロファイルをベースに色変換を作成します。src_profile および dest_profile は、iccread で返される ICC プロファイル構造体です。

C = makecform('icc', src_profile, dest_profile, 'SourceRenderingIntent', src_intent, 'DestRenderingIntent', dest_intent) は、ソース プロファイル src_intent と対象プロファイル dest_intent に対して、描画意図の引数を指定することで、2 つの ICC カラー プロファイル src_profiledest_profile をベースに色変換を作成します。

描画意図は、これらのプロファイルが組み合わさった場合に使われる再生成のタイプを指定します。多くのデバイスに対して、再生成された色の範囲は、PCS で表されている色の範囲よりかなり狭いものになります。描画意図は、色域マッピング手法を定義します。これらの描画意図に対して設定可能な値を次の表に示しています。個々の描画意図は、美的な部分と色の精度とのトレードオフになります。

描画意図

説明

'AbsoluteColorimetric'

範囲内のすべての色の関係を維持しながら、範囲外のすべての色を最も近い範囲の表面にマッピングします。この絶対レンダリングは、完全な反射拡散と関連したカラー データを含んでいます。

'Perceptual' (既定の設定)

与えられたデバイスの生成可能な色の範囲を最適化するためのベンダー固有の色域マッピング手法を採用。目的は、範囲内の色間の関係が維持されていないとしても、最も見て美しい結果を与えることです。このメディア対応のレンダリングは、デバイスの白色点に対するカラー データを含んでいます。

'RelativeColorimetric'

範囲内のすべての色の関係を維持しながら、範囲外のすべての色を最も近い範囲の表面にマッピングします。このメディア対応のレンダリングは、デバイスの白色点に対するカラー データを含んでいます。

'Saturation'

デバイス カラーの飽和状態を最大にする手法でベンダー固有の色域マッピングを採用。このレンダリングは、棒グラフや円グラフのような簡単な商用グラフに対して、一般に使われます。このメディア対応のレンダリングは、デバイスの白色点に対するカラー データを含んでいます。

C = makecform('clut', profile, LUTtype) は、ICC カラー プロファイルに含まれるカラー ルックアップ テーブル (CLUT) をベースに色変換構造体 C を作成します。profile は、iccread で返される ICC プロファイル構造体です。LUTtype は、profile 構造体のどの clut を使用するかを指定します。次の表に記載されている各 LUTtype は、特定のレンダリングを使用してデバイス カラーと PCS カラーとの間の変換を実行する 8 ビット または 16 ビットの LUT タグの要素を含みます。'clut' 変換の詳細は、International Color Consortium 仕様 ICC.1:2001-04 (Version 2) の Section 6.5.7 か、ICC.1:2001-12 (Version 4) の Section 6.5.9 を参照してください。これらは、「www.color.org」から参照できます。

LUT タイプ

説明

'AToB0' (既定の設定)

デバイスから PCS: 知覚的な描画意図

'AToB1'

デバイスから PCS: メディア対応の比色分析描画意図

'AToB2'

デバイスから PCS: 飽和描画意図

'AToB3'

デバイスから PCS: ICC 絶対描画意図

'BToA0'

PCS からデバイス: 知覚的な描画意図

'BToA1'

PCS からデバイス: メディア対応の比色分析描画意図

'BToA2'

PCS からデバイス: 飽和描画意図

'BToA3'

PCS からデバイス: ICC 絶対描画意図

'Gamut'

与えられたデバイスに対して、どの PCS カラーが範囲外になるかを決定

'Preview0'

PCS カラーから、知覚的なレンダリングを使う soft-proofing で利用可能な PCS カラー

'Preview1'

メディア対応の比色分析レンダリングを使う soft-proofing で利用可能な PCS カラー

'Preview2'

PCS カラーから、飽和レンダリングを使う soft-proofing で利用可能な PCS カラー

C = makecform('mattrc', MatTrc, 'Direction', direction) は、RGB-to-XYZ 行列および RGB Tone Reproduction Curves を含む、Matrix/Tone Reproduction Curve (MatTRC) モデルをベースにした色変換構造体 C を作成します。MatTRC は、通常、ICC カラー プロファイルに含まれるタグに基づき、iccread から返される ICC プロファイル構造体の 'MatTRC' フィールドです。direction は、'forward' または 'inverse' のいずれかであり、MatTRC を順方向 (RGB から XYZ) か逆方向 (XYZ から RGB) のどちらに適用するかを指定します。詳細については、International Color Consortium 仕様 ICC.1:2001-04 または ICC.1:2001-12 (www.color.org) の Section 6.3.1.2 を参照してください。

C = makecform('mattrc', profile, 'Direction', direction) は、与えられた ICC プロファイル構造体 profileMatTRC フィールドに基づき色変換を作成します。direction は、'forward' または 'inverse' のいずれかであり、MatTRC を順方向 (RGB から XYZ) か逆方向 (XYZ から RGB) のどちらに適用するかを指定します。

C = makecform('mattrc', profile, 'Direction', direction, 'RenderingIntent', intent) も同様ですが、描画意図を指定するオプションが追加されています。intent は、'RelativeColorimetric' (既定の設定) または 'AbsoluteColorimetric' のどちらかでなければなりません。'AbsoluteColorimetric' が指定された場合、色調はプロファイルの Media White Point ではなく、完全拡散を参照します。

C = makecform('graytrc', profile, 'Direction', direction) は、ICC カラー プロファイルに含まれる単一チャネルの Tone Reproduction Curve (GrayTRC) に基づくモノクロ変換を指定する、色変換構造体 C を作成します。direction'forward' または 'inverse' のいずれかであり、grayTRC 変換を順方向 (デバイスから PCS) か逆方向 (PCS からデバイス) のどちらに適用するかを指定します ("デバイス" は、モノクロ デバイスと通信するグレースケール信号を参照します。"PCS" は、ICC プロファイルのプロファイル接続空間で、profile.Header 内の 'ConnectionSpace' フィールドに依存し、XYZ か L*a*b* のいずれかになります)。

C = makecform('graytrc', profile, 'Direction', direction, 'RenderingIntent', intent) も同様ですが、描画意図を指定するオプションが追加されています。intent は、'RelativeColorimetric' (既定の設定) または 'AbsoluteColorimetric' のどちらかでなければなりません。'AbsoluteColorimetric' が指定された場合、色調はプロファイルの Media White Point ではなく、完全拡散を参照します。

C = makecform('named', profile, space) は、色の名前から色空間座標への変換を指定する色変換構造体 C を作成します。profile は、名前付きカラー プロファイルに対する (NamedColor2 フィールドをもつ) プロファイル構造体でなければなりません。space は、'PCS' または 'Device' のいずれかです。'PCS' オプションは、常に利用可能で、'double' 形式で L*a*b* または XYZ 座標を返します。この値は、profile.Header 内の 'ConnectionSpace' フィールドに依存します。'Device' オプションはアクティブな場合、'double' 形式でデバイス座標と次元を返します。その値は、profile.Header 内の 'ColorSpace' フィールドに依存します。

入力イメージが sRGB と仮定して、RGB イメージを L*a*b* に変換します。

rgb = imread('peppers.png');
cform = makecform('srgb2lab');
lab = applycform(rgb,cform); 

非標準 RGB カラー プロファイルを、デバイスに依存しない XYZ プロファイル接続空間に変換します。MatTRC 値が ICC 入力プロファイルに含まれなければならないことに注意してください。

InputProfile = iccread('myRGB.icc');
C = makecform('mattrc',InputProfile.MatTRC, ...
              'direction', 'forward');

ヒント

Image Processing Toolbox は、色空間を表現するために、次の省略形を使います。

省略形

説明

xyz

1931 CIE XYZ 三刺激値 (2 度視野)

xyl

1931 CIE xyY 色度値 (2 度視野)。x および y は、関連 CIE 色度ダイアグラムの xy 座標を参照し、l は、Y (輝度) を参照します。

uvl

1960 CIE uvY 値。u および vuv 座標を参照し、lY (輝度) を参照します。

upvpl

1976 CIE uvY 値。up および vpuv 座標を参照し、lY (輝度) を参照します。

lab

1976 CIE L*a*b*

メモ

l または L は、輝度 (Y) ではなく L* (CIE 1976 心理計測明度) を参照します。

lch

CIE L*a*b* 値の極変換。ここで、c = chroma であり、h = hue です。

cmyk

プリンターに使用される標準値

srgb

標準のコンピューター モニター RGB 値 (IEC 61966-2-1)

R2006a より前に導入

この情報は役に立ちましたか?