rgb2lab
RGB를 CIE 1976 L*a*b*로 변환
설명
예제
RGB 흰색을 L*a*b*로 변환하기
컬러스페이스를 지정하여 색 값을 L*a*b*로 변환하기
ColorSpace
파라미터를 사용하여 Adobe RGB (1998) 색 값을 L*a*b*로 변환합니다.
rgb2lab([.2 .3 .4],'ColorSpace','adobe-rgb-1998')
ans = 1×3
30.1783 -5.6902 -20.8223
기준 흰색을 지정하여 RGB 색을 L*a*b*로 변환하기
D50 기준 흰색을 사용하여 RGB 색을 L*a*b로 변환하려면 rgb2lab
를 사용하십시오.
rgb2lab([.2 .3 .4],'WhitePoint','d50')
ans = 1×3
31.3294 -4.0732 -18.1750
RGB 영상을 L*a*b*로 변환 및 L* 성분 표시하기
RGB 영상을 작업 공간으로 읽어 들입니다.
rgb = imread('peppers.png');
RGB 영상을 L*a*b* 컬러스페이스로 변환합니다.
lab = rgb2lab(rgb);
L*a*b* 영상의 L* 성분을 표시합니다.
imshow(lab(:,:,1),[0 100])
입력 인수
RGB
— RGB 색 값
숫자형 배열
변환할 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")
ColorSpace
— 입력 RGB 값의 컬러스페이스
"srgb"
(디폴트 값) | "adobe-rgb-1998"
| "prophoto-rgb"
| "linear-rgb"
입력 RGB 값의 컬러스페이스로, "srgb"
, "adobe-rgb-1998"
, "prophoto-rgb"
또는 "linear-rgb"
로 지정됩니다. "linear-rgb"
를 지정할 경우 rgb2lab
는 입력 RGB 값이 선형화된 sRGB 값이라고 가정합니다.
데이터형: string
| char
WhitePoint
— 기준 흰색 점
"d65"
(디폴트 값) | "a"
| "c"
| "e"
| "d50"
| "d55"
| "icc"
| 1×3 벡터
기준 흰색 점으로, 1×3 벡터 또는 다음 표에 나열된 CIE 표준 광원 중 하나로 지정됩니다.
값 | 흰색 점 |
---|---|
"a" | CIE 표준 광원 A, |
"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를 사용하여 일출 또는 일몰의 일광을 시뮬레이션합니다. 수평선 빛이라고도 합니다. |
| CIE 표준 광원 D55, |
"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
출력 인수
lab
— 변환된 L*a*b* 색 값
숫자형 배열
변환된 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");
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
rgb2lab
함수는 C 코드 생성을 지원합니다(MATLAB® Coder™가 필요함). 자세한 내용은 Code Generation for Image Processing 항목을 참조하십시오.코드 생성 시, 모든 문자형 벡터 입력 인수는 컴파일타임 상수여야 합니다.
GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
ColorSpace
이름-값 인수는 값"srgb"
,"adobe-rgb-1998"
,"linear-rgb"
만 지원합니다.코드 생성 시, 모든 문자형 벡터 입력 인수는 컴파일타임 상수여야 합니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
버전 내역
R2014b에 개발됨R2022b: ProPhoto(ROMM RGB) 컬러스페이스 지원
이제 rgb2lab
는 sRGB와 Adobe RGB 1998 컬러스페이스보다 더 넓은 색역을 가진 ProPhoto(ROMM RGB) 컬러스페이스를 지원합니다. ProPhoto 컬러스페이스를 사용하려면 ColorSpace
이름-값 인수를 "prophoto-rgb"
로 지정하십시오.
R2022b: 스레드 기반 환경 지원
rgb2lab
함수는 이제 스레드 기반 환경을 지원합니다.
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)