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