Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

L*a*b* 値が RGB の色域にあるかどうかの判定

この例では、色空間変換を使用して L*a*b* 値が RGB の色域にあるかどうかを判定する方法を説明します。特定の色空間を使用して表現できる色のセットは、その色空間の "色域" と呼ばれます。一部の L*a*b* の色の値は、RGB に変換すると色域から外れる場合があります。

L*a*b* 値を RGB に変換します。負の値が返されたことで、L*a*b* の色 [80 -130 85] が sRGB 色空間の色域に含まれていないことがわかります。sRGB 色空間は、lab2rgb が既定で使用する RGB 色空間です。RGB の色は、そのいずれかの成分の値が 0 未満か 1 より大きい場合、色域から外れています。

lab = [80 -130 85];
lab2rgb(lab)
ans = 1×3

   -0.6209    0.9537   -0.1927

今度は別の RGB 色空間である Adobe RGB (1998) を使用してこの L*a*b* 値を RGB に変換します。Adobe RGB (1998) は sRGB より大きな色域をもっています。'ColorSpace' を使用して、名前と値のペアを指定します。出力値は 0.0 以上 1.0 以下であるため、L*a*b* の色 [80 -130 85] は Adobe RGB (1998) の色域に含まれることがわかります。

lab2rgb(lab,'ColorSpace','adobe-rgb-1998')
ans = 1×3

    0.1236    0.9522    0.1072