이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

poly2mask

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

설명

예제

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

poly2mask 함수는 다각형 내부의 픽셀을 1로, 다각형 외부의 픽셀을 0으로 설정합니다. 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

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

입력 인수

모두 축소

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

데이터형: double

마스크의 행 개수로, 양의 정수로 지정됩니다.

데이터형: double

마스크의 열 개수로, 양의 정수로 지정됩니다.

데이터형: double

출력 인수

모두 축소

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

데이터형: 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

알고리즘

관심 영역(ROI) 마스크를 만들 때 poly2mask는 어떤 픽셀을 영역에 포함할지 결정해야 합니다. 어떤 영역의 경계에 있는 픽셀이 테두리 선에 일부만 포함된 경우에는 결정하기가 어려울 수 있습니다. 다음 그림은 삼각형 관심 영역을 보여주며, ROI의 꼭짓점 중 하나를 자세히 살펴봅니다. 이 그림은 관심 영역의 테두리가 어떻게 부분적으로 픽셀을 포함할 수 있는지를 보여줍니다.

ROI의 경계에 있는 픽셀은 일부만 테두리에 포함하기

어떤 픽셀이 영역에 있는지 확인하기 위해 poly2mask는 다음 알고리즘을 사용합니다.

  1. 각 픽셀을 5x5 서브픽셀 그리드로 나눕니다.

    아래 그림은 위에서 본 ROI의 꼭짓점이 있는 픽셀을 5x5 서브픽셀 그리드와 함께 보여줍니다.

  2. 꼭짓점의 위치를 조정합니다.

    poly2mask는 다각형의 각 꼭짓점을 서브픽셀 그리드의 최근접 교차 지점으로 이동합니다. poly2maskxy 좌표를 최근접 서브픽셀 그리드 코너로 반올림하는 방법에 주목하십시오. 이 과정을 통해 두 번째의 수정된 다각형이 생성됩니다. 아래 그림은 수정된 꼭짓점을 빨간색 "X"로 보여줍니다.

  3. 조정된 꼭짓점을 연결하는 경로를 그립니다.

    poly2mask는 서브픽셀 그리드의 경계를 따라 각 조정된 꼭짓점과 다음 조정된 꼭짓점을 연결하는 경로를 형성합니다. 아래 그림은 이 다각형에서 두껍고 어두운 선에 의해 수정된 부분을 보여줍니다.

  4. 어떤 테두리 픽셀이 다각형 내에 있는지 확인합니다.

    poly2mask는 다각형 안에 어떤 테두리 픽셀이 있는지 확인하기 위해 다음 규칙을 사용합니다. 조정된 꼭짓점을 연결하는 경로로 정의된 경계 안에 픽셀의 중앙 서브픽셀이 있을 경우 이 픽셀은 영역 내에 있는 것입니다.

    다음 그림에서 ROI 테두리 픽셀의 중앙 서브픽셀은 더 어두운 회색으로 음영 처리되었습니다. 다각형 내부의 픽셀은 더 밝은 회색으로 음영 처리되었습니다. 꼭짓점을 포함하는 픽셀인데 ROI의 일부가 아닌 게 있습니다. 중심 픽셀이 수정된 다각형 내에 있지 않기 때문입니다.

참고 항목

|

R2006a 이전에 개발됨