주요 콘텐츠

labeloverlay

2차원 영상에 레이블 행렬 영역 겹치기

설명

B = labeloverlay(A,L)은 레이블 행렬 L에서 0이 아닌 각 레이블마다 할당된 각기 다른 색을 입력 영상 A에 혼합합니다. labeloverlay 함수는 배경 픽셀에는 색을 혼합하지 않습니다.

예제

B = labeloverlay(A,BW)는 마스크 BWtrue인 영역에 할당된 색을 입력 영상에 혼합합니다. labeloverlay 함수는 배경 픽셀(레이블이 false인 픽셀)에는 색을 혼합하지 않습니다.

예제

B = labeloverlay(A,C)는 categorical형 행렬 C의 각 레이블에 할당된 각기 다른 색을 입력 영상에 혼합합니다. labeloverlay 함수는 <undefined> 범주의 픽셀에는 혼합하지 않습니다.

B = labeloverlay(___,Name=Value)는 혼합된 오버레이 영상 B를 계산할 때 이름-값 인수를 사용하여 계산의 여러 특성을 제어합니다.

예제

예제

모두 축소

영상을 읽어 들인 다음, superpixels 함수를 사용하여 분할합니다.

A = imread("kobi.png");
[L,N] = superpixels(A,20);

분할된 레이블 행렬의 각 영역에 고유한 색을 사용하여 원래 영상을 혼합합니다. 혼합 영상을 표시합니다. 일부 인접 영역의 색이 비슷합니다(예: 아래 그림에서 코와 눈의 보라색 음영). 색이 비슷하기 때문에 시각적으로 영역의 경계선을 확인하기 어렵습니다.

B = labeloverlay(A,L);
imshow(B)

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

ColorAssignment 이름-값 인수를 "contrasting-neighbors"로 지정하여 인접 영역 간의 색 대비를 향상합니다. 혼합 영상을 표시합니다. 이 혼합 영상에는 레이블에 고대비 색 4개만 사용되었습니다. 높은 색 대비는 영역 경계선의 가시성을 향상합니다.

C = labeloverlay(A,L,ColorAssignment="contrasting-neighbors");
imshow(C)

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

회색조 영상을 읽어 들이고 표시합니다.

A = imread("coins.png");
imshow(A)

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

이진화를 사용하여 마스크를 만듭니다.

t = graythresh(A);
BW = imbinarize(A,t);
imshow(BW)

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

원래 영상에 마스크를 혼합합니다. 혼합 영상을 표시합니다.

B = labeloverlay(A,BW);
imshow(B)

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

영상과 이 영상의 분할된 레이블 영상을 읽어 들입니다.

A = imread("yellowlily.jpg");
L = imread("yellowlily-segmented.png");

숫자형 레이블 행렬을 categorical형 행렬로 변환합니다. 범주의 값과 이름을 지정합니다.

C = categorical(L,[1 2 3],["petal" "leaf" "dirt"]);

원래 영상에 categorical형 레이블을 혼합합니다. 혼합 영상을 표시합니다.

B = labeloverlay(A,C);
imshow(B)

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

원래 영상에 범주 분할의 두 레이블을 혼합합니다. 컬러맵을 변경하고 레이블의 불투명도를 높여 결과를 표시합니다.

B2 = labeloverlay(A,C,IncludedLabels=["petal" "leaf"], ...
    Colormap="autumn",Transparency=0.25);
imshow(B2)

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

입력 인수

모두 축소

입력 영상으로, 2차원 회색조 영상 또는 컬러 영상으로 지정됩니다.

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

레이블로, 음이 아닌 정수로 구성된 행렬로 지정됩니다.

데이터형: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

마스크로, 논리형 행렬로 지정됩니다.

데이터형: logical

범주 레이블로, categorical 행렬로 지정됩니다.

데이터형: categorical

이름-값 인수

모두 축소

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

예: labeloverlay(A,L,Colormap="hot")"hot" 컬러맵의 색으로 레이블을 표시합니다.

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

예: labeloverlay(A,L,"Colormap","hot")"hot" 컬러맵의 색으로 레이블을 표시합니다.

R2025a 이후

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

색 할당 값설명샘플 출력값
"noshuffle"컬러맵 색을 숫자순으로 레이블 행렬 영역에 할당합니다. 각 영역에는 고유한 색이 있습니다.

Label overlay without shuffling color order.

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

Label overlay with shuffling color order.

"auto"Colormap의 형식을 기반으로 컬러맵 색을 할당합니다. 기본적으로 labeloverlay는 컬러맵을 이름으로 지정하는 경우에는 색 순서를 섞고, 컬러맵을 숫자형 행렬로 지정하는 경우에는 색 순서를 유지합니다.

Colormap을 string형으로 지정하거나 Colormap의 디폴트 값을 사용하는 경우 "shuffle"과 동일합니다.

Colormap을 숫자형 행렬로 지정하는 경우 "noshuffle"과 동일합니다.

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

Label overlay with four high-contrast colors that improve the clarity of region boundaries.

컬러맵으로, 다음 값 중 하나로 지정됩니다.

  • l×3 컬러맵. 컬러맵의 각 행에 있는 RGB 3색은 [0, 1] 범위로 정규화되어야 합니다. l는 레이블 행렬 L, 이진 마스크 BW 또는 categorical형 행렬 C의 레이블 수입니다.

  • colormap 함수에 대한 유효한 입력값 중 하나에 해당하는 string형 또는 문자형 벡터. 기본적으로 labeloverlay는 인접 레이블이 더 뚜렷하게 구분되도록 지정된 컬러맵을 섞습니다.

참고

ColorAssignment"contrasting-neighbors"로 지정하면 labeloverlay는 시각적 대비가 높은 컬러맵에서 색을 선택합니다.

예: [0.2, 0.1, 0.5; 0.1, 0.5, 0.8]

예: "hot"

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

혼합 영상에 표시할 레이블로, 다음 중 하나로 지정됩니다.

  • [0, max(L(:))] 범위의 정수 또는 정수로 구성된 벡터. 기본적으로 labeloverlay는 0이 아닌 레이블을 모두 표시합니다.

  • categorical형 행렬 C의 레이블에 해당하는 string형, 또는 string형으로 구성된 벡터. 기본적으로 labeloverlay는 정의된 categorical형 레이블을 모두 표시합니다.

벡터에 포함되지 않는 모든 레이블은 배경으로 간주됩니다. 예를 들어 벡터 [1 3 4]에서 값 2는 레이블로 존재하는 경우 배경으로 간주됩니다.

예: [1 3 4]

예: ["flower","stem"]

데이터형: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | string

표시된 레이블의 투명도로, [0, 1] 범위의 숫자로 지정됩니다.

  • 값이 0이면 컬러 레이블이 완전히 불투명해집니다.

  • 값이 1이면 컬러 레이블이 완전히 투명해집니다.

데이터형: single | double

출력 인수

모두 축소

혼합 영상으로, A와 같은 크기의 숫자형 행렬로 반환됩니다.

데이터형: uint8

버전 내역

R2017b에 개발됨

모두 확장