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

imerode

설명

예제

J = imerode(I,SE)는 회색조 영상, 이진 영상 또는 팩 형식의 이진 영상 I를 침식시키고, 침식된 영상 J를 반환합니다. SE는 구조 요소 객체이거나, strel 함수 또는 offsetstrel 함수에서 반환된, 구조 요소 객체로 구성된 배열입니다.

선택적으로 GPU를 사용하여(Parallel Computing Toolbox™ 필요) 영상 침식을 수행할 수 있습니다.

J = imerode(I,nhood)는 영상 I를 침식시킵니다. 여기서 nhood는 구조 요소 이웃을 지정하는, 01로 구성된 행렬입니다. imerode 함수는 floor((size(nhood)+1)/2)를 통해 이웃의 중앙 요소를 파악합니다.

이 구문은 imerode(I,strel(nhood))와 동일합니다.

J = imerode(___,packopt,m)은 입력 영상 I가 팩 형식의 이진 영상인지를 지정합니다. m은 팩 형식이 아닌 원본 영상의 행 차원을 지정합니다.

이 구문은 GPU에서 지원되지 않습니다.

J = imerode(___,shape)는 출력 영상의 크기를 지정합니다.

예제

모두 축소

이진 영상을 작업 공간으로 읽어 들입니다.

originalBW = imread('text.png');

직선 모양의 평탄한 구조 요소를 생성합니다.

se = strel('line',11,90);

구조 요소를 사용하여 영상을 침식시킵니다.

erodedBW = imerode(originalBW,se);

원본 영상과 침식된 영상을 표시합니다.

figure
imshow(originalBW)

figure
imshow(erodedBW)

회색조 영상을 작업 공간으로 읽어 들입니다.

originalI = imread('cameraman.tif');

평탄하지 않은 offsetstrel 객체를 생성합니다.

se = offsetstrel('ball',5,5);

영상을 침식시킵니다.

erodedI = imerode(originalI,se);

원본 영상과 침식된 영상을 표시합니다.

figure
imshow(originalI)

figure
imshow(erodedI)

이진 볼륨을 생성합니다.

load mristack
BW = mristack < 100;

3차 구조 요소를 만듭니다.

se = strel('cube',3)
se = 
strel is a cube shaped structuring element with properties:

      Neighborhood: [3x3x3 logical]
    Dimensionality: 3

3차 구조 요소를 사용하여 볼륨을 침식시킵니다.

erodedBW = imerode(BW, se);

입력 인수

모두 축소

입력 영상으로, 임의 차원의 회색조 영상, 이진 영상 또는 팩 형식의 이진 영상으로 지정됩니다.

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

구조 요소로, 스칼라 strel 객체 또는 offsetstrel 객체로 지정됩니다. SEstrel 객체 또는 offsetstrel 객체로 구성된 배열일 수도 있습니다. 이 경우 imerode는 각 구조 요소를 연달아 사용하여 입력 영상에 대해 여러 번 침식을 수행합니다.

imerode는 데이터형이 logical인 영상을 제외하고 모든 영상에 대해 회색조 침식을 수행합니다. 이 경우 구조 요소는 평탄해야 하고 imerode는 이진 침식을 수행합니다.

구조 요소 이웃으로, 01로 구성된 행렬로 지정됩니다.

예: [0 1 0; 1 1 1; 0 1 0]

팩 형식의 이진 영상 표시자로, 다음 값 중 하나로 지정됩니다.

설명

'notpacked'

I가 일반적인 배열로 처리됩니다.

'ispacked'

Ibwpack에 의해 생성된 대로 팩 형식의 이진 영상으로 처리됩니다. I는 2차원 uint32형 배열이어야 하고, SE는 평탄한 2차원 구조 요소여야 합니다. shape의 값은 'same'이어야 합니다.

데이터형: char | string

팩 형식이 아닌 원본 영상의 행 차원으로, 양의 정수로 지정됩니다.

데이터형: double

출력 영상의 크기로, 다음 값 중 하나로 지정됩니다.

설명

'same'

출력 영상이 입력 영상과 크기가 같습니다. packopt 값이 'ispacked'이면, shape'same'이어야 합니다.

'full'

전체 침식을 계산합니다.

데이터형: char | string

출력 인수

모두 축소

침식된 영상으로, 회색조 영상, 이진 영상 또는 팩 형식의 이진 영상으로 반환됩니다. 입력 영상 I가 팩 형식의 이진 영상이면 J도 팩 형식의 이진 영상입니다. JI와 동일한 클래스를 갖습니다.

세부 정보

모두 축소

이진 침식

B에 의한 A의 이진 침식(A ϴ B로 나타냄)은 집합 연산 A ϴ B = {z|(Bz ⊆ A}로 정의됩니다. 즉, 이는 픽셀 위치의 집합 z입니다. 여기서 위치 z로 변환된 구조 요소는 A의 전경 픽셀과만 겹칩니다.

이진 침식에 대한 자세한 내용은 [1] 항목을 참조하십시오.

회색조 침식

일반 형식의 회색조 침식에서는 구조 요소가 높이를 갖습니다. B(x, y)에 의한 A(x, y)의 회색조 침식은 다음으로 정의됩니다.

(A ϴ B)(x, y) = min {A(x + x′, y + y′) − B(x′, y′) | (x′, y′) ∊ DB},

DB는 구조 요소 B의 영역이고, A(x,y)는 영상의 영역을 벗어난 부분에서는 +∞인 것으로 간주됩니다. 높이 값이 0이 아닌 구조 요소를 생성하려면, 구문 strel(nhood,height)를 사용하십시오. 여기서 height는 높이 값을 지정하고, nhood는 구조 요소의 정의역인 DB에 해당합니다.

일반적으로 회색조 침식은 평탄한 구조 요소(B(x,y) = 0)를 사용하여 수행됩니다. 이러한 구조 요소를 사용한 회색조 침식은 아래의 국소 최솟값 연산자와 동일합니다.

(A ϴ B)(x, y) = min {A(x + x′, y + y′) | (x′, y′) ∊ DB}.

strel(nhood,height), strel('arbitrary',nhood,height)strel('ball', ...)을 제외한 모든 strel 구문은 평탄한 구조 요소를 생성합니다.

알고리즘

imerode는 구조 요소 객체에 대한 분해를 (객체가 있는 경우)자동으로 활용합니다. 또한 imerode는 분해가 있는 구조 요소 객체로 이진 침식을 수행할 때, 침식 속도를 높이기 위해 이진 영상 패킹을 자동으로 사용합니다.

비트 패킹을 사용한 침식에 대해서는 [3]에 설명되어 있습니다.

참고 문헌

[1] Gonzalez, R. C., R. E. Woods, and S. L. Eddins, Digital Image Processing Using MATLAB, Gatesmark Publishing, 2009.

[2] Haralick, Robert M., and Linda G. Shapiro, Computer and Robot Vision, Vol. I, Addison-Wesley, 1992, pp. 158-205.

[3] 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. 254-258, May 1992.

확장 기능

참고 항목

함수

객체

R2006a 이전에 개발됨