Main Content

rgb2lab

RGB를 CIE 1976 L*a*b*로 변환

설명

lab = rgb2lab(RGB)는 sRGB 값을 CIE 1976 L*a*b* 값으로 변환합니다.

예제

lab = rgb2lab(RGB,Name,Value)는 하나 이상의 이름-값 쌍 인수를 사용하여 추가 변환 옵션(예: RGB 영상의 컬러스페이스)을 지정합니다.

예제

예제

모두 축소

RGB 흰색 값을 L*a*b로 변환하려면 rgb2lab를 사용하십시오.

rgb2lab([1 1 1])
ans = 1×3

  100.0000         0    0.0000

ColorSpace 파라미터를 사용하여 Adobe RGB (1998) 색 값을 L*a*b*로 변환합니다.

rgb2lab([.2 .3 .4],'ColorSpace','adobe-rgb-1998')
ans = 1×3

   30.1783   -5.6902  -20.8223

D50 기준 흰색을 사용하여 RGB 색을 L*a*b로 변환하려면 rgb2lab를 사용하십시오.

rgb2lab([.2 .3 .4],'WhitePoint','d50')
ans = 1×3

   31.3294   -4.0732  -18.1750

RGB 영상을 작업 공간으로 읽어 들입니다.

rgb = imread('peppers.png');

RGB 영상을 L*a*b* 컬러스페이스로 변환합니다.

lab = rgb2lab(rgb);

L*a*b* 영상의 L* 성분을 표시합니다.

imshow(lab(:,:,1),[0 100])

Figure contains an axes object. The hidden axes object contains an object of type image.

입력 인수

모두 축소

변환할 RGB 색 값으로, 다음 형식 중 하나인 숫자형 배열로 지정됩니다.

  • c×3 컬러맵. 각 행이 하나의 RGB 색 값을 지정합니다.

  • m×n×3 영상

  • m×n×3×p 영상 스택

데이터형: single | double | uint8 | uint16

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

예: lab = rgb2lab([0.25 0.40 0.10],WhitePoint="d50")

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: lab = rgb2lab([0.25 0.40 0.10],"WhitePoint","d50")

입력 RGB 값의 컬러스페이스로, "srgb", "adobe-rgb-1998", "prophoto-rgb" 또는 "linear-rgb"로 지정됩니다. "linear-rgb"를 지정할 경우 rgb2lab는 입력 RGB 값이 선형화된 sRGB 값이라고 가정합니다.

데이터형: string | char

기준 흰색 점으로, 1×3 벡터 또는 다음 표에 나열된 CIE 표준 광원 중 하나로 지정됩니다.

흰색 점
"a"

CIE 표준 광원 A, [1.0985, 1.0000, 0.3558]. 상관 색 온도 2856K를 사용하여 일반 가정용 텅스텐 필라멘트 조명을 시뮬레이션합니다.

"c"CIE 표준 광원 C, [0.9807, 1.0000, 1.1822]. 상관 색 온도 6774K를 사용하여 평균 또는 북쪽 하늘 일광을 시뮬레이션합니다. CIE에서는 더 이상 사용하지 않습니다.
"e"동일 에너지 라디에이터, [1.000, 1.000, 1.000]. 이론적인 기준으로서 유용함.
"d50"CIE 표준 광원 D50, [0.9642, 1.0000, 0.8251]. 상관 색 온도 5003K를 사용하여 일출 또는 일몰의 일광을 시뮬레이션합니다. 수평선 빛이라고도 합니다.

"d55"

CIE 표준 광원 D55, [0.9568, 1.0000, 0.9214]. 상관 색 온도 5500K를 사용하여 오전 중 또는 오후 중 일광을 시뮬레이션합니다.

"d65"CIE 표준 광원 D65, [0.9504, 1.0000, 1.0888]. 상관 색 온도 6504K를 사용하여 정오 일광을 시뮬레이션합니다.
"icc"ICC 프로파일에 사용되는 PCS(Profile Connection Space) 광원. 부호 있는 32비트 숫자(16개 소수부 비트) 고정소수점을 사용하여 [0.9642, 1.000, 0.8249]를 근사. 실제 값: [31595,32768, 27030]/32768.

데이터형: single | double | string | char

출력 인수

모두 축소

변환된 L*a*b* 색 값으로, 입력값과 같은 크기의 숫자형 배열로 반환됩니다. 출력 유형은 double입니다. 단, 입력 유형이 single인 경우 출력 유형도 single입니다.

특성설명
L*영상의 휘도 또는 밝기. 값은 [0, 100] 범위 내에 있으며, 여기서 0은 검은색을, 100은 흰색을 지정합니다. L*이 증가하면 색이 밝아집니다.
a*영상의 빨간색 또는 녹색 색조의 양. 큰 양수의 a* 값은 빨간색/자홍색에 대응됩니다. 큰 음수의 a* 값은 녹색에 대응됩니다. a* 값의 단일 범위는 존재하지 않으나, 값은 일반적으로 [-100, 100] 또는 [-128, 127) 범위 내에 있습니다.
b*영상의 노란색 또는 파란색 색조의 양. 큰 양수의 b* 값은 노란색에 대응됩니다. 큰 음수의 b* 값은 파란색에 대응됩니다. b* 값의 단일 범위는 존재하지 않으나, 값은 일반적으로 [-100, 100] 또는 [-128, 127) 범위 내에 있습니다.

데이터형: double | single

  • 입력 RGB 컬러스페이스를 "linear-rgb"로 지정할 경우 rgb2lab는 입력값이 선형화된 sRGB 값이라고 가정합니다. 그 대신 입력 컬러스페이스를 선형화된 Adobe RGB (1998)로 만들고 싶다면 lin2rgb 함수를 사용할 수 있습니다.

    예를 들어, 선형화된 Adobe RGB (1998) 영상 RGBlinadobe를 CIE 1976 L*a*b* 컬러스페이스로 변환하려면 다음과 같이 2단계로 변환을 수행하십시오.

    RGBadobe = lin2rgb(RGBlinadobe,"ColorSpace","adobe-rgb-1998");
    LAB = rgb2lab(RGBadobe,"ColorSpace","adobe-rgb-1998");
    

확장 기능

버전 내역

R2014b에 개발됨

모두 확장