Main Content

rgb2xyz

RGB를 CIE 1931 XYZ로 변환

설명

XYZ = rgb2xyz(RGB)는 sRGB 영상의 빨간색, 녹색, 파란색 값을 CIE 1931 XYZ 값(2° 관찰자)으로 변환합니다.

예제

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

예제

모두 축소

영상과 색 값을 RGB에서 CIE 1931 XYZ 컬러스페이스로 변환하기

RGB 영상을 XYZ로 변환하기

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

RGB = imread('peppers.png');

영상을 XYZ 컬러스페이스로 변환합니다.

XYZ = rgb2xyz(RGB);

원본 영상 옆에 새 영상을 함께 표시합니다.

figure
imshowpair(RGB,XYZ,'montage');
title('Image in RGB Color Space (Left) and XYZ Color Space (Right)');

Figure contains an axes object. The axes object with title Image in RGB Color Space (Left) and XYZ Color Space (Right) contains an object of type image.

RGB 색 값을 XYZ로 변환하기

흰색의 값을 RGB에서 XYZ 컬러스페이스로 변환합니다. RGB에서 흰색은 벡터 [1 1 1]로 표현됩니다.

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

    0.9505    1.0000    1.0888

D50을 기준 흰색으로 사용하여 RGB 색을 XYZ로 변환하기

XYZ_D50 = rgb2xyz(RGB,'WhitePoint','d50');

D50을 기준 흰색으로 사용하여 첫 번째 출력 XYZ 영상 옆에 XYZ 영상을 함께 표시합니다.

figure
imshowpair(XYZ,XYZ_D50,'montage');
title('XYZ Image, Without (Left) and With (Right) Reference White');

Figure contains an axes object. The axes object with title XYZ Image, Without (Left) and With (Right) Reference White contains an object of type image.

Adobe RGB(1998) 색을 XYZ로 변환하기

XYZ_Adobe = rgb2xyz(RGB,'ColorSpace','adobe-rgb-1998');

디폴트 RGB 컬러스페이스와 Adobe RGB(1998) 컬러스페이스에서 생성된 XYZ 영상을 표시합니다.

figure
imshowpair(XYZ,XYZ_Adobe,'montage');
title(['XYZ Image, Starting From Default RGB (Left) and Adobe RGB ',...
  '(Right) Color Space']);

Figure contains an axes object. The axes object with title XYZ Image, Starting From Default RGB (Left) and Adobe RGB (Right) Color Space 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는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

예: xyz = rgb2xyz([.2 .3 .4],WhitePoint="d50")

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

예: xyz = rgb2xyz([.2 .3 .4],"WhitePoint","d50")

입력 RGB 값의 컬러스페이스로, "srgb", "adobe-rgb-1998", "prophoto-rgb" 또는 "linear-rgb"로 지정됩니다. "linear-rgb"를 지정할 경우 rgb2xyz는 입력 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

출력 인수

모두 축소

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

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

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

    RGBadobe = lin2rgb(RGBlinadobe,"ColorSpace","adobe-rgb-1998");
    XYZ = rgb2xyz(RGBadobe,"ColorSpace","adobe-rgb-1998");
    

버전 내역

R2014b에 개발됨

모두 확장