주요 콘텐츠

regionprops3

3차원 볼륨 영상 영역의 속성 측정

설명

stats = regionprops3(BW,properties)는 3차원 볼륨 이진 영상 BW에 있는 각 연결성분(객체)에 대해 여러 속성을 측정합니다. 출력값 stats는 각 객체에 대한 여러 속성을 나타냅니다.

regionprops3은 26-연결 이웃을 사용하여 볼륨 이진 영상에 있는 고유한 객체를 찾습니다. 자세한 내용은 픽셀 연결성 항목을 참조하십시오. 다른 유형의 연결성을 사용하여 객체를 찾으려면 bwconncomp를 대신 사용하여 연결성분을 만든 다음 CC 인수를 사용하여 결과를 regionprops3에 전달하십시오.

모든 구문에서 properties 인수를 생략할 수 있습니다. 이 경우 regionprops3"Volume", "Centroid""BoundingBox" 측정값을 반환합니다.

예제

stats = regionprops3(CC,properties)bwconncomp에서 반환된 구조체 CC에 있는 각 연결성분(객체)에 대해 여러 속성을 측정합니다.

stats = regionprops3(L,properties)는 3차원 레이블 영상 L에서 레이블이 지정된 각 영역에 대해 여러 속성을 측정합니다.

stats = regionprops3(___,V,properties)는 3차원 볼륨 회색조 영상 V에서 레이블이 지정된 각 영역에 대해 여러 속성을 측정합니다. 첫 번째 입력값(BW, CC 또는 L)은 V의 영역을 식별합니다.

예제

모두 축소

2개의 구를 포함하는 이진 영상을 만듭니다.

[x,y,z] = meshgrid(1:50,1:50,1:50);
bw1 = sqrt((x-10).^2 + (y-15).^2 + (z-35).^2) < 5;
bw2 = sqrt((x-20).^2 + (y-30).^2 + (z-15).^2) < 10;
bw = bw1 | bw2;

2개 구의 중심과 반지름을 가져옵니다.

s = regionprops3(bw,"Centroid","PrincipalAxisLength");
centers = s.Centroid
centers = 2×3

    20    30    15
    10    15    35

diameters = mean(s.PrincipalAxisLength,2)
diameters = 2×1

   19.9641
    9.8241

radii = diameters/2
radii = 2×1

    9.9820
    4.9120

1로 구성된 3×3 큐브가 0으로 구성된 9×9 큐브의 중심에 위치하는 큐브를 만듭니다.

innercube = ones(3,3,3);
cube_in_cube = padarray(innercube,[3 3],0,'both');

큐브 내 큐브에 대한 모든 통계량을 구합니다.

stats = regionprops3(cube_in_cube,'all')
stats=1×18 table
    Volume     Centroid                   BoundingBox                              SubarrayIdx                     Image         EquivDiameter    Extent    VoxelIdxList       VoxelList        PrincipalAxisLength      Orientation    EigenVectors    EigenValues      ConvexHull        ConvexImage      ConvexVolume    Solidity    SurfaceArea
    ______    ___________    ______________________________________    ___________________________________    _______________    _____________    ______    _____________    _____________    _______________________    ___________    ____________    ____________    _____________    _______________    ____________    ________    ___________

      27      5    5    2    3.5    3.5    0.5      3      3      3    {[4 5 6]}    {[4 5 6]}    {[1 2 3]}    {3×3×3 logical}       3.7221          1       {27×1 double}    {27×3 double}    3.873    3.873    3.873    0    0    0    {3×3 double}    {3×1 double}    {24×3 double}    {3×3×3 logical}         27            1           41.07   

입력 인수

모두 축소

볼륨 이진 영상으로, 3차원 논리형 배열로 지정됩니다.

regionprops3은 각 성분의 top-left 극값을 기준으로 볼륨 이진 영상의 객체를 왼쪽에서 오른쪽으로 정렬합니다. 여러 객체가 동일한 가로 위치를 갖는 경우 함수는 해당 객체를 위에서 아래로 정렬하고 세 번째 차원을 따라 다시 정렬합니다. regionprop3은 측정된 속성 stats를 정렬된 객체와 동일한 순서로 반환합니다.

데이터형: logical

3차원 볼륨 영상의 연결성분으로, 6, 18 또는 26 같은 3차원 연결성 값을 사용하여 bwconncomp에 의해 반환된 구조체로 지정됩니다. CC.ImageSize는 1×3 벡터여야 합니다.

데이터형: struct

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

  • 3차원 숫자형 배열. 0으로 레이블이 지정된 복셀은 배경입니다. 1로 레이블이 지정된 복셀이 첫 번째 객체가 되고, 2로 레이블이 지정된 복셀이 두 번째 객체가 되는 방식입니다. regionprops3은 음수 값 복셀을 배경으로 처리하고, 정수가 아닌 입력 복셀은 가장 가까운 정수로 버림합니다. watershed 또는 labelmatrix와 같은 레이블 지정 함수에서 숫자형 레이블 영상을 얻을 수 있습니다.

  • 3차원 categorical형 배열. 각 범주는 서로 다른 영역에 대응됩니다.

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

측정값 유형으로, string형 또는 문자형 벡터가 쉼표로 구분된 목록, string형 또는 문자형 벡터로 구성된 셀형 배열 또는 "all"이나 "basic"으로 지정됩니다.

  • "all"을 지정하면, regionprops3은 모든 형태 측정값을 계산합니다. 회색조 영상도 지정하면, regionprops3은 모든 복셀 값 측정값을 반환합니다.

  • "basic"을 지정하거나 properties 인수를 지정하지 않으면, regionprops3"Volume", "Centroid", "BoundingBox" 측정값만 계산합니다.

다음 표에는 형태 측정값을 제공하는 모든 속성이 나와 있습니다. 복셀 값의 측정값 표에는 회색조 영상을 지정하는 경우에만 유효한 속성이 추가로 나와 있습니다.

형태 측정값

속성 이름설명코드 생성
"BoundingBox"해당 영역을 포함하는 가장 작은 직육면체로, [ulf_x ulf_y ulf_z width_x width_y width_z] 형식의 1×6 벡터로 반환됩니다. ulf_x, ulf_y, ulf_z는 직육면체의 왼쪽 위 전면 코너를 지정합니다. width_x, width_y, width_z는 각 차원을 따라 직육면체의 너비를 지정합니다.
"Centroid"

영역의 질량 중심으로, 1×3 벡터로 반환됩니다. 3개 요소는 질량 중심의 (x, y, z) 좌표를 지정합니다.

"ConvexHull"영역을 포함할 수 있는 가장 작은 볼록 다면체로, p×3 행렬로 반환됩니다. 행렬의 각 행에는 해당 다면체 꼭짓점의 x, y, z 좌표가 포함되어 있습니다.아니요
"ConvexImage"컨벡스 헐의 영상으로, 껍질 내 모든 복셀이 채워진(on으로 설정됨) 볼륨 이진 영상으로 반환됩니다. 영상은 영역의 경계 상자 크기입니다.아니요
"ConvexVolume"ConvexImageon 복셀 수로, 스칼라로 반환됩니다.아니요
"EigenValues"영역을 나타내는 복셀의 고유값으로, 3×1 벡터로 반환됩니다. regionprops3은 주요 축의 길이를 계산할 때 이 고유값을 사용합니다.
"EigenVectors"영역을 나타내는 복셀의 고유벡터로, 3×3 행렬로 반환됩니다. regionprops3은 영역과 같은 정규화된 2차 중심 모멘트를 갖는 타원체의 방향을 계산할 때 이 고유벡터를 사용합니다.
"EquivDiameter"영역과 같은 부피를 갖는 구의 지름으로, 스칼라로 반환됩니다. regionprops3 함수는 지름을 (6*Volume/pi)^(1/3)으로 계산합니다.
"Extent"총 경계 상자의 복셀 대비 해당 영역의 복셀의 비로, 스칼라로 반환됩니다. regionprops3 함수는 비율을 Volume/(width_x + width_y + width_z)로 계산합니다. 여기서 width_x, width_y, width_zBoundingBox로 지정된 경계 상자 차원입니다.
"Image"영역의 경계 상자로, 영역의 경계 상자와 크기가 같은 볼륨 이진 영상으로 반환됩니다. on 복셀은 영역에 해당하고, 그 외 모든 복셀은 off입니다.
"Orientation"

영역과 같은 정규화된 2차 중심 모멘트를 갖는 타원체의 방향으로, 1×3 벡터로 반환됩니다. 이 벡터는 타원체의 가장 긴 기본 축의 오일러 각을 나타냅니다[2]. 각도는 오른손 법칙에 기반하고 양의 각도는 반시계 방향으로의 회전을 나타냅니다. regionprops3x, y, z축을 따라 원점을 바라보는 방향에서 각도를 해석하며, 각각 롤, 피치, 요를 나타냅니다. 회전 연산은 가환적이지 않으므로 의도한 대로 영향을 미치려면 올바른 순서로 회전 연산을 적용해야 합니다.

"PrincipalAxisLength"영역과 같은 정규화된 2차 중심 모멘트를 갖는 타원체의 장축 길이(단위: 복셀)로, 1×3 벡터로 반환됩니다. regionprops3은 값을 가장 높은 순에서 가장 낮은 순으로 정렬합니다.
"Solidity"컨벡스 헐에도 있고 영역에도 있는 복셀 비율로, 스칼라로 반환됩니다. regionprops3 함수는 값을 Volume/ConvexVolume으로 계산합니다.아니요
"SubarrayIdx"객체 경계 상자 내에 있는 요소를 추출하는 데 사용되는 인덱스로, 셀형 배열로 반환됩니다. L(idx{:})이 객체 경계 상자 내에 있는 L의 요소를 추출하게 됩니다.
"SurfaceArea"영역 경계선 주변의 거리[1]로, 스칼라로 반환됩니다.아니요
"Volume"영역의 on 복셀 수로, 스칼라로 반환됩니다.
"VoxelIdxList"영역 복셀의 선형 인덱스로, 요소를 p개 가진 벡터로 반환됩니다.
"VoxelList"영역의 복셀 위치로, p×3 행렬로 반환됩니다. 행렬의 각 행은 [x y z] 형식을 갖고, 영역에 있는 특정 복셀의 좌표를 지정합니다.

다음 표의 복셀 값의 측정값 속성은 회색조 볼륨 영상 V를 지정할 때만 유효합니다.

복셀 값의 측정값

속성 이름 설명코드 생성
"MaxIntensity"영역에서 가장 큰 명암을 갖는 복셀 값으로, 스칼라로 반환됩니다.
"MeanIntensity"영역의 모든 명암 값의 평균으로, 스칼라로 반환됩니다.
"MinIntensity"영역에서 가장 낮은 명암을 갖는 복셀 값으로, 스칼라로 반환됩니다.
"VoxelValues"영역의 복셀 값으로, p×1 벡터로 반환됩니다. 여기서 p는 영역의 복셀 수입니다. 벡터의 각 요소에는 영역의 복셀 값이 들어 있습니다.
"WeightedCentroid"위치와 명암 값을 기준으로 한 영역의 중심으로, 좌표로 구성된 p×3 벡터로 반환됩니다. WeightedCentroid의 첫 번째 요소는 가중치가 부여된 중심의 가로 좌표(또는 x 좌표)입니다. 두 번째 요소는 세로 좌표(또는 y 좌표)입니다. 세 번째 요소는 평면 좌표(또는 z 좌표)입니다.

데이터형: char | string | cell

볼륨 회색조 영상으로, 3차원 숫자형 배열로 지정됩니다. 영상의 크기는 이진 영상 BW, 연결성분 구조체 CC 또는 레이블 행렬 L의 크기와 일치해야 합니다.

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

출력 인수

모두 축소

측정값으로, 테이블로 반환됩니다. 테이블의 행 수는 BW, CC.NumObjects 또는 max(L(:))의 객체 수에 대응됩니다. 각 테이블 행의 변수(열)는 properties에서 지정한 대로 각 영역에 대해 계산된 속성을 나타냅니다. 입력 영상이 categorical형 레이블 영상 L인 경우 stats는 속성 "LabelName"을 갖는 추가 변수를 포함합니다.

stats의 측정값 순서는 이진 영상 BW의 정렬된 객체 또는 CC 또는 L로 지정된 객체의 정렬 순서와 동일합니다.

참고 문헌

[1] Lehmann, Gaetan and David Legland. Efficient N-Dimensional surface estimation using Crofton formula and run-length encoding, The Insight Journal, 2012. https://insight-journal.org/browse/publication/852.

[2] Shoemake, Ken, Graphics Gems IV. Edited by Paul S. Heckbert, Morgan Kaufmann, 1994, pp. 222–229.

확장 기능

모두 확장

버전 내역

R2017b에 개발됨

모두 확장