Main Content

poly2mask

관심 영역(ROI) 다각형을 영역 마스크로 변환

설명

예제

BW = poly2mask(xi,yi,m,n)은 좌표 xi, yi에서 꼭짓점을 갖는 관심 영역(ROI) 다각형으로부터 크기가 m×n인 이진 ROI 마스크 BW를 계산합니다. 다각형이 아직 닫히지 않았다면 poly2mask가 자동으로 닫습니다.

poly2mask 함수는 다각형 내부의 픽셀을 1로, 다각형 외부의 픽셀을 0으로 설정합니다. ROI 경계에 있는 픽셀을 분류하는 방법에 대한 자세한 내용은 Classify Pixels That Are Partially Enclosed by ROI 항목을 참조하십시오.

예제

모두 축소

다각형의 x 좌표 및 y 좌표를 지정합니다.

x = [63 186 54 190 63];
y = [60 60 209 204 60];

영상의 크기를 지정하는 마스크를 만듭니다.

bw = poly2mask(x,y,256,256);

다각형 둘레에 선을 그리면서 마스크를 표시합니다.

imshow(bw)
hold on
plot(x,y,'b','LineWidth',2)
hold off

Figure contains an axes object. The axes object contains 2 objects of type image, line.

x 좌표 및 y 좌표를 위해 임의의 점으로 2개의 집합을 정의합니다.

x = 256*rand(1,4);
y = 256*rand(1,4);
x(end+1) = x(1);
y(end+1) = y(1);

마스크를 만듭니다.

bw = poly2mask(x,y,256,256);

마스크를 표시하고 다각형 둘레에 선을 그립니다.

imshow(bw)
hold on
plot(x,y,'b','LineWidth',2)
hold off

Figure contains an axes object. The axes object contains 2 objects of type image, line.

입력 인수

모두 축소

다각형 꼭짓점의 x 좌표로, 숫자형 벡터로 지정됩니다. xiyi의 길이가 같아야 합니다.

데이터형: double

다각형 꼭짓점의 y 좌표로, 숫자형 벡터로 지정됩니다. xiyi의 길이가 같아야 합니다.

데이터형: double

마스크의 행 개수로, 음이 아닌 정수로 지정됩니다.

데이터형: double

마스크의 열 개수로, 음이 아닌 정수로 지정됩니다.

데이터형: double

출력 인수

모두 축소

이진 영상으로, m×n 논리형 행렬로 반환됩니다.

데이터형: logical

  • 특정 사각형 픽셀 세트를 포함하는 다각형을 지정하려면 다각형의 경계가 경계 픽셀의 중심이 아닌 바깥쪽 경계를 따라오게 하십시오.

    예를 들어, 열 4 ~ 10, 행 4 ~ 10의 픽셀을 포함하기 위해 다음과 같이 다각형 꼭짓점을 지정할 수 있습니다.

    x = [4 10 10 4 4];
    y = [4 4 10 10 4];
    mask = poly2mask(x,y,12,12)
    mask =
    
         0     0     0     0     0     0     0     0     0     0     0     0
         0     0     0     0     0     0     0     0     0     0     0     0
         0     0     0     0     0     0     0     0     0     0     0     0
         0     0     0     0     0     0     0     0     0     0     0     0
         0     0     0     0     1     1     1     1     1     1     0     0
         0     0     0     0     1     1     1     1     1     1     0     0
         0     0     0     0     1     1     1     1     1     1     0     0
         0     0     0     0     1     1     1     1     1     1     0     0
         0     0     0     0     1     1     1     1     1     1     0     0
         0     0     0     0     1     1     1     1     1     1     0     0
         0     0     0     0     0     0     0     0     0     0     0     0
         0     0     0     0     0     0     0     0     0     0     0     0

    이 예의 경우 다각형이 경계 픽셀의 중심을 지나기 때문에 원하는 경계 픽셀 중 일부만 다각형 내부에 있게 됩니다. 행 4의 픽셀과 열 4의 픽셀은 다각형에 속하지 않습니다. 이들 요소를 다각형에 포함하려면 다음 예처럼 소수 값을 사용하여 4번째 행(3.5)과 10번째 행(10.5)의 바깥쪽 경계, 4번째 열(3.5)과 10번째 열(10.5)의 바깥쪽 경계를 꼭짓점으로 지정하십시오.

    x = [3.5 10.5 10.5 3.5 3.5];
    y = [3.5 3.5 10.5 10.5 3.5];
    mask = poly2mask(x,y,12,12)
    mask =
    
         0     0     0     0     0     0     0     0     0     0     0     0
         0     0     0     0     0     0     0     0     0     0     0     0
         0     0     0     0     0     0     0     0     0     0     0     0
         0     0     0     1     1     1     1     1     1     1     0     0
         0     0     0     1     1     1     1     1     1     1     0     0
         0     0     0     1     1     1     1     1     1     1     0     0
         0     0     0     1     1     1     1     1     1     1     0     0
         0     0     0     1     1     1     1     1     1     1     0     0
         0     0     0     1     1     1     1     1     1     1     0     0
         0     0     0     1     1     1     1     1     1     1     0     0
         0     0     0     0     0     0     0     0     0     0     0     0
         0     0     0     0     0     0     0     0     0     0     0     0

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장