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

strel

모폴로지 구조 요소

설명

strel 객체는 모폴로지 팽창과 침식 연산의 핵심이 되는 모폴로지 평탄 구조 요소입니다.

평탄 구조 요소는 2차원 또는 다차원의 이진 값 이웃이며, 이 이웃의 true 픽셀은 모폴로지 계산에 포함되고 false 픽셀은 포함되지 않습니다. 구조 요소에서 원점이라는 중앙 픽셀은 영상에서 처리되는 픽셀을 식별합니다. 아래에서 설명하는 strel 함수를 사용하여 평탄 구조 요소를 만들 수 있습니다. 평탄 구조 요소는 이진 영상과 회색조 영상에 모두 사용할 수 있습니다. 다음 그림은 평탄 구조 요소를 보여줍니다.

비평탄 구조 요소를 만들려면 offsetstrel을 사용하십시오.

생성

설명

SE = strel(nhood)는 지정된 이웃 nhood로 평탄 구조 요소를 만듭니다.

구문 SE = strel('arbitrary',nhood)를 사용하여 지정된 이웃으로 평탄 구조 요소를 만들 수도 있습니다.

SE = strel('diamond',r)은 다이아몬드 모양의 구조 요소를 만듭니다. 여기서 r은 구조 요소 원점부터 다이아몬드 점까지의 거리를 지정합니다.

예제

SE = strel('disk',r,n)은 원판 모양 구조 요소를 만듭니다. 여기서 r은 반지름을 지정하고, n은 원판 모양을 근사하는 데 사용되는 직선 구조 요소의 개수를 지정합니다. 원판 근사를 사용하여 모폴로지 연산을 수행하면 구조 요소에서 근사를 사용할 때보다 실행 속도가 훨씬 더 빠릅니다.

SE = strel('octagon',r)은 팔각형 구조 요소를 만듭니다. 여기서 r은 가로 축과 세로 축을 따라 측정한, 구조 요소 원점부터 팔각형 변까지의 거리를 지정합니다. r은 음이 아닌 3의 배수여야 합니다.

예제

SE = strel('line',len,deg)는 대략적인 길이가 len이고 각도가 deg인, 이웃의 중앙 요소를 기준으로 대칭이 되는 선형 구조 요소를 만듭니다.

SE = strel('rectangle',[m n])은 크기가 [m n]인 사각형 구조 요소를 만듭니다.

예제

SE = strel('square',w)는 너비가 w 픽셀인 정사각형 구조 요소를 만듭니다.

SE = strel('cube',w)는 너비가 w 픽셀인 3차원 3차 구조 요소를 만듭니다.

SE = strel('cuboid',[m n p])는 크기가 [m n p]인 3차원 직육면체 구조 요소를 만듭니다.

예제

SE = strel('sphere',r)은 반지름이 r 픽셀인 구 모양의 3차원 구조 요소를 만듭니다.

호환성

비평탄 구조 요소 모양을 만드는 데 다음 구문을 계속 사용할 수 있지만, offsetstrel을 사용하는 것이 좋습니다.

  • SE = strel('arbitrary',nhood,h)

  • SE = strel('ball',r,h,n)

다음 구문도 계속 사용할 수 있지만 권장되지 않습니다.

  • SE = strel('pair',offset)

  • SE = strel('periodicline',p,v)

입력 인수

모두 확장

이웃으로, 임의 차원의 숫자형 배열로 지정됩니다. nhood의 모든 0이 아닌 픽셀은 모폴로지 연산에서 이웃에 속합니다. nhood의 중심(또는 원점)은 이웃의 중심이 되는 요소이며 floor((size(nhood) + 1)/2)로 주어집니다.

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

x-y 평면의 구조 요소 반지름으로, 양의 정수로 지정됩니다.

  • 원판 모양의 경우 r은 원판의 원점부터 경계까지의 거리입니다.

  • 다이아몬드 모양의 경우 r은 구조 요소 원점부터 다이아몬드 점까지의 거리입니다.

  • 팔각형 모양의 경우 r은 가로 축과 세로 축을 따라 측정한, 구조 요소 원점부터 팔각형 변까지의 거리입니다. r은 3의 배수여야 합니다.

데이터형: double

모양을 근사하는 데 사용되는 주기적 직선 구조 요소의 개수로, 0, 4, 6 또는 8로 지정됩니다. n이 0보다 크면 원판 모양 구조 요소가 n개의 주기적 직선 구조 요소로 구성된 시퀀스에 의해 근사적으로 표현됩니다. n0이면 strel은 근사를 사용하지 않고, 구조 요소 멤버는 원점과 픽셀 중심 간의 거리가 r을 넘지 않는 모든 픽셀로 구성됩니다. 원판 근사를 사용하여 모폴로지 연산을 수행하면 구조 요소에서 근사를 사용할 때보다 실행 속도가 훨씬 더 빠릅니다(n > 0인 경우). 경우에 따라 strel에서 근사를 사용할 때 직선 구조 요소를 두 개 더 사용해야 할 때가 있습니다. 이 경우 사용되는 분해된 구조 요소의 개수는 n+2입니다.

n의 값동작
n > 0streln개(또는 경우에 따라 n+2개)의 주기적 직선 모양의 구조 요소로 구성된 시퀀스를 사용하여 형태를 근사화합니다.
n = 0strel은 근사를 사용하지 않습니다. 구조 요소 멤버는 원점과 픽셀 중심 간의 거리가 r을 넘지 않는 모든 픽셀로 구성되고, 해당 높이 값은 rh로 지정된 타원체 공식에 따라 결정됩니다.

데이터형: double

선형 구조 요소의 길이로, 양수로 지정됩니다. len은 직선 양끝에 있는 구조 요소의 중심 간의 대략적인 거리입니다.

데이터형: double

선형 구조 요소의 각도(단위: 도)로, 숫자형 스칼라로 지정됩니다. 각도는 가로 축에서부터 시계 반대 방향으로 측정됩니다.

데이터형: double

사각형 구조 요소의 크기로, 양의 정수로 구성된 요소를 2개 가진 벡터로 지정됩니다. 구조 요소는 m개 행과 n개 열을 가집니다.

데이터형: double

정사각형 또는 3차 구조 요소의 너비로, 양의 정수로 지정됩니다.

데이터형: double

직육면체 구조 요소의 크기로, 양의 정수로 구성된 요소를 3개 가진 벡터로 지정됩니다. 구조 요소는 m개 행, n개 열, p개 평면을 가집니다.

데이터형: double

속성

모두 확장

구조 요소 이웃으로, 논리형 배열로 지정됩니다.

데이터형: logical

구조 요소의 차원으로, 음이 아닌 스칼라로 지정됩니다.

데이터형: double

객체 함수

imdilate영상 팽창
imerode영상 침식
imclose영상에 모폴로지 닫기 연산 수행
imopen영상에 모폴로지 열기 연산 수행
imbothatBottom-hat filtering
imtophatTop-hat filtering
bwhitmissBinary hit-miss operation
decomposeReturn sequence of decomposed structuring elements
reflectReflect structuring element
translateTranslate structuring element

예제

모두 축소

11x11 정사각형 구조 요소를 만듭니다.

SE = strel('square', 11)
SE = 
strel is a square shaped structuring element with properties:

      Neighborhood: [11x11 logical]
    Dimensionality: 2

45도의 각도로 기울어지고 길이가 10인 직선 모양의 구조 요소를 만듭니다.

SE = strel('line', 10, 45)
SE = 
strel is a line shaped structuring element with properties:

      Neighborhood: [7x7 logical]
    Dimensionality: 2

구조 요소를 확인합니다.

SE.Neighborhood
ans = 7x7 logical array

   0   0   0   0   0   0   1
   0   0   0   0   0   1   0
   0   0   0   0   1   0   0
   0   0   0   1   0   0   0
   0   0   1   0   0   0   0
   0   1   0   0   0   0   0
   1   0   0   0   0   0   0

반지름이 15인 원판 모양 구조 요소를 만듭니다.

SE3 = strel('disk', 15)
SE3 = 
strel is a disk shaped structuring element with properties:

      Neighborhood: [29x29 logical]
    Dimensionality: 2

원판 모양 구조 요소를 표시합니다.

figure
imshow(SE3.Neighborhood)

반지름이 15인 구 모양의 3차원 구조 요소를 만듭니다.

SE = strel('sphere', 15)
SE = 
strel is a sphere shaped structuring element with properties:

      Neighborhood: [31x31x31 logical]
    Dimensionality: 3

구조 요소를 표시합니다.

figure
isosurface(SE.Neighborhood)

  • 근사를 사용하지 않는 구조 요소(n = 0)는 입자 크기의 분포를 계산하는 데 적합하지 않습니다.

알고리즘

'arbitrary'를 제외한 모든 모양의 구조 요소는 구조 요소 분해로 총칭되는 기법을 사용하여 생성됩니다. 원칙적으로, 팽창을 계산할 때 큰 구조 요소를 사용하는 것이 작은 구조 요소로 구성된 시퀀스를 사용하는 것보다 속도가 더 빠를 수 있습니다. 예를 들어, 11x11 정사각형 구조 요소를 사용한 팽창의 경우 먼저 1x11 구조 요소를 사용하여 팽창한 후 11x1 구조 요소를 사용하여 팽창할 수 있습니다. 이렇게 하면 이론적으로 성능이 5.5배 향상됩니다. 실제 성능 향상은 그보다 다소 낮습니다. 'disk' 모양에 사용되는 구조 요소 분해는 근사적이지만, 그 외 다른 분해는 정확합니다.

호환성 관련 고려 사항

모두 확장

R2017b에서 동작이 변경됨

참고 문헌

[1] van den Boomgard, R, and R. van Balen, "Methods for Fast Morphological Image Transforms Using Bitmapped Images," Computer Vision, Graphics, and Image Processing: Graphical Models and Image Processing, Vol. 54, Number 3, pp. 252–254, May 1992.

[2] Adams, R., "Radial Decomposition of Discs and Spheres," Computer Vision, Graphics, and Image Processing: Graphical Models and Image Processing, Vol. 55, Number 5, pp. 325–332, September 1993.

[3] Jones, R., and P. Soille, "Periodic lines: Definition, cascades, and application to granulometrie," Pattern Recognition Letters, Vol. 17, pp. 1057–1063, 1996.

확장 기능

참고 항목

도움말 항목

R2006a 이전에 개발됨