주요 콘텐츠

label2rgb

레이블 행렬을 RGB 영상으로 변환

설명

RGB = label2rgb(L)은 레이블이 지정된 영역을 시각화하기 위한 목적으로 레이블 영상 L을 RGB 색 영상으로 변환합니다. label2rgb 함수는 각 객체에 할당할 색을 레이블 행렬의 객체 수를 기준으로 결정합니다. label2rgb 함수는 전체 컬러맵 범위에서 색을 선택합니다.

예제

RGB = label2rgb(L,cmap)은 RGB 영상에 사용할 컬러맵 cmap을 지정합니다.

RGB = label2rgb(L,cmap,zerocolor)는 배경 요소(0으로 레이블이 지정된 픽셀)의 RGB 색을 지정합니다.

RGB = label2rgb(L,cmap,zerocolor,colorAssignment)label2rgb가 레이블 행렬의 영역에 색을 할당하는 방법을 제어합니다.

RGB = label2rgb(___,OutputFormat=outputFormat)을 사용하면 함수가 RGB 영상 대신에 고유 색 목록을 반환하도록 지정할 수 있습니다.

예제

모두 축소

영상을 읽어 들여 표시합니다.

I = imread("rice.png"); 
imshow(I)

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

영상에서 레이블 행렬을 만듭니다.

BW = imbinarize(I); 
CC = bwconncomp(BW);
L = labelmatrix(CC);

디폴트 설정을 사용하여 레이블 행렬을 RGB 영상으로 변환합니다. 배경 픽셀은 흰색입니다.

RGB = label2rgb(L);
imshow(RGB)

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

선택적 파라미터를 지정하여 레이블 행렬을 RGB 영상으로 변환합니다. 이 예제에서는 "spring" 컬러맵을 사용하고, 배경 픽셀을 녹청색으로 설정하며, 레이블에 할당하는 색을 무작위로 선택합니다.

RGB2 = label2rgb(L,"spring","c","shuffle"); 
imshow(RGB2)

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

입력 인수

모두 축소

인접 영역의 레이블 영상으로, 다음 중 하나로 지정됩니다.

  • 음이 아닌 정수로 구성된 행렬. 0으로 레이블이 지정된 픽셀은 배경입니다. 1로 레이블이 지정된 픽셀이 첫 번째 객체가 되고, 2로 레이블이 지정된 픽셀이 두 번째 객체가 되는 방식입니다. watershed 또는 labelmatrix와 같은 레이블 지정 함수에서 숫자형 레이블 영상을 얻을 수 있습니다.

  • categorical형 행렬.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | categorical

생성된 컬러 영상 RGB에 사용되는 컬러맵으로, 다음 중 하나로 지정됩니다.

설명
double 데이터형의 c×3 행렬

각각이 RGB 3색인 c개의 색을 지정하는 컬러맵 행렬입니다. c는 레이블 행렬 L의 레이블 수 numlabels보다 크거나 같아야 합니다. 레이블 수는 numlabels = max(L(:))로 계산할 수 있습니다.

cnumlabels보다 크면 label2rgb는 행렬의 처음 numlabels개 행만 사용하여 RGB 영상을 만듭니다.

컬러맵 함수

"jet" 또는 "gray" 같은 MATLAB® 컬러맵 함수 이름. 지원되는 컬러맵 목록은 colormap을 참조하십시오.

컬러맵 핸들

@jet 또는 @gray 같은 컬러맵 함수 핸들.

채우기 색으로, RGB 3색, 16진수 색 코드, 색 이름 또는 짧은 색 이름으로 지정됩니다. label2rgb는 숫자형 레이블 영상에는 채우기 색을 레이블 0에 적용하고, categorical형 레이블 영상에는 레이블 <undefined>에 적용합니다.

사용자 지정 색의 경우에는 RGB 3색 또는 16진수 색 코드를 지정하십시오.

  • RGB 3색은 요소를 3개 가진 행 벡터로, 각 요소는 색을 구성하는 빨간색, 녹색, 파란색의 농도를 지정합니다. 농도의 범위는 [0,1]이어야 합니다(예: [0.4 0.6 0.7]).

  • 16진수 색 코드는 string형 스칼라 또는 문자형 벡터로, 해시 기호(#)로 시작하고 그 뒤에 3자리 또는 6자리의 16진수 숫자(0에서 F 사이일 수 있음)가 옵니다. 이 값은 대/소문자를 구분하지 않습니다. 따라서 색 코드 "#FF8800", "#ff8800", "#F80""#f80"은 모두 동일합니다.

몇몇의 흔한 색은 이름으로 지정할 수도 있습니다. 다음 표에는 명명된 색 옵션과 그에 해당하는 RGB 3색 및 16진수 색 코드가 나와 있습니다.

색 이름짧은 이름RGB 3색16진수 색 코드실제 표시 색
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

다음 표에는 라이트 테마와 다크 테마의 플롯에 대한 디폴트 색 팔레트가 나와 있습니다.

팔레트팔레트 색

"gem" — 라이트 테마 디폴트 값

R2025a 이전: 대부분의 플롯은 기본적으로 이러한 색을 사용합니다.

Sample of the "gem" color palette

"glow" — 다크 테마 디폴트 값

Sample of the "glow" color palette

orderedcolors 함수와 rgb2hex 함수를 사용하여 이러한 팔레트의 RGB 3색과 16진수 색 코드를 얻을 수 있습니다. 예를 들어, "gem" 팔레트의 RGB 3색을 가져와서 16진수 색 코드로 변환해 보겠습니다.

RGB = orderedcolors("gem");
H = rgb2hex(RGB);

R2023b 이전: RGB = get(groot,"FactoryAxesColorOrder")를 사용하여 RGB 3색을 얻습니다.

색 할당으로, 다음 값 중 하나로 지정됩니다.

  • "noshuffle" — 컬러맵 색을 숫자순으로 레이블 행렬 영역에 할당합니다. 각 영역에는 고유한 색이 있습니다.

  • "shuffle" — 컬러맵 색을 의사 무작위 방식으로 할당합니다. 각 영역에는 고유한 색이 있습니다.

  • "contrasting-neighbors" (R2025a 이후) — 컬러맵 색의 일부를 할당하여 인접 영역 간의 대비를 최대화합니다. 각각의 색이 여러 레이블에 대응될 수 있습니다.

RGB에 반환되는 RGB 데이터의 출력 형식으로, 다음 중 하나로 지정됩니다.

  • "image" — RGB 영상을 반환합니다. 입력 레이블 행렬 L의 크기가 M×N이면 출력 RGB 영상의 크기는 M×N×3입니다.

  • "triplets" — RGB 색 목록을 반환합니다. 출력값의 크기는 입력 레이블 행렬의 각 C 레이블에 대해 RGB 3색을 포함하는 C×3 행렬입니다.

출력 인수

모두 축소

RGB 데이터로, 숫자형 행렬로 반환됩니다.

데이터형: uint8

확장 기능

모두 확장

버전 내역

R2006a 이전에 개발됨

모두 확장