Main Content

imerode

설명

예제

J = imerode(I,SE)는 구조 요소 SE를 사용하여 회색조 영상, 이진 영상 또는 팩 형식의 이진 영상 I를 침식시킵니다.

J = imerode(I,nhood)는 영상 I를 침식시킵니다. 여기서 nhood는 구조 요소 이웃을 지정하는, 01로 구성된 행렬입니다.

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

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

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

예제

모두 축소

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

originalBW = imread('text.png');

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

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

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

erodedBW = imerode(originalBW,se);

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

figure
imshow(originalBW)

Figure contains an axes object. The axes object contains an object of type image.

figure
imshow(erodedBW)

Figure contains an axes object. The axes object contains an object of type image.

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

originalI = imread('cameraman.tif');

평탄하지 않은 offsetstrel 객체를 만듭니다.

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

영상을 침식시킵니다.

erodedI = imerode(originalI,se);

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

figure
imshow(originalI)

Figure contains an axes object. The axes object contains an object of type image.

figure
imshow(erodedI)

Figure contains an axes object. The axes object contains an object of type image.

이진 볼륨을 생성합니다.

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 구문은 평탄한 구조 요소를 생성합니다.

  • 영상 I의 차원 수가 구조 요소의 차원 수보다 높을 경우, imerode 함수는 동일한 모폴로지 침식을 더 높은 차원을 따라 모든 평면에 적용합니다.

    이 동작을 사용하여 RGB 영상에 모폴로지 침식을 수행할 수 있습니다. RGB 영상에 대해 2차원 구조 요소를 지정하여 각 색 채널에서 개별적으로 연산을 수행합니다.

  • 구조 요소 이웃을 지정하면 imerodefloor((size(nhood)+1)/2)를 통해 nhood의 중앙 요소를 결정합니다.

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

참고 문헌

[1] Gonzalez, Rafael C., Richard E. Woods, and Steven L. Eddins. Digital Image Processing Using MATLAB. Third edition. Knoxville: Gatesmark Publishing, 2020.

[2] Haralick, Robert M., and Linda G. Shapiro. Computer and Robot Vision. 1st ed. USA: Addison-Wesley Longman Publishing Co., Inc., 1992, pp. 158-205.

[3] Boomgaard, Rein van den, and Richard van Balen. “Methods for Fast Morphological Image Transforms Using Bitmapped Binary Images.” CVGIP: Graphical Models and Image Processing 54, no. 3 (May 1, 1992): 252–58. https://doi.org/10.1016/1049-9652(92)90055-3.

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목

함수

객체