- 모폴로지(Morphology) 연산이란?
- 영상을 형태학적인 측면에서 다루는 기법
- 다양한 영상 처리 시스템에서 전처리(pre-processing) 또는 후처리(post-processing) 형태로 널리 사용
- 수학적 모폴로지(mathematical morphology)
- 구조 요소(Structuring element)
- 모폴로지 연산의 결과를 결정하는 커널, 마스크, 윈도우
- 이진 영상의 침식(errosion) 연산
- 구조 요소가 객체 영역 내부에 완전히 포함될 경우 고정점 픽셀을 255로 설정
- 침식 연산은 객체 외각을 깍아내는 연산 --> 객체 크기는 감소 & 배경은 확대
- 이진 영상의 팽창(diliation) 연산
- 구조 요소와 객체 영역이 한 픽셀이라도 만날 경우 고정점 픽셀을 255로 설정
- 팽창 연산은 객체 외곽을 확대시키는 연산 -> 객체 크기는 감소 & 배경은 확대
- 실제 영상의 침식 연산 결과
- 객체 영역(흰색)이 점점 줄어듦
- 작은 크기의 객체(잡음) 제거 효과
- 실제 영상의 팽창 연산 결과
- 객체 영역(흰색)이 점점 늘어남
- 객체 내부의 홈(구멍)이 채워짐
- 모폴로지 침식 연산
cv2.erode(src,kernel,dst=None,anchor=None,iteration=None,borderType=None,borderValue=None) -> dst
• src: 입력 영상
• kernel: 구조 요소 . getStructuringElement () 함수에 의해 생성 가능
만약 None 을 지정하면 3x3 사각형 구성 요소를 사용 .
• dst : 출력 영상 . src 와 동일한 크기와 타입
• anchor: 고정점 위치 . 기본값(-1, -1) 을 사용하면 중앙점을 사용
• iterations: 반복 횟수 . 기본값은 1.
• borderType: 가장자리 픽셀 확장 방식 . 기본값은 cv2.BORDER_CONSTANT.
• borderValue: cv2.BORDER_CONSTANT 인 경우 , 확장된 가장자리 픽셀을 채울 값
- 모폴로지 팽창 연산
cv2.dilate(src,kernel,dst=None,anchor=None,iteration=None,borderType=None,borderValue=None) -> dst
• src: 입력 영상
• kernel: 구조 요소 . getStructuringElement () 함수에 의해 생성 가능
만약 None 을 지정하면 3x3 사각형 구성 요소를 사용 .
• dst : 출력 영상 . src 와 동일한 크기와 타입
• anchor: 고정점 위치 . 기본값(-1, -1) 을 사용하면 중앙점을 사용
• iterations: 반복 횟수 . 기본값은 1.
• borderType: 가장자리 픽셀 확장 방식 . 기본값은 cv2.BORDER_CONSTANT.
• borderValue: cv2.BORDER_CONSTANT 인 경우 , 확장된 가장자리 픽셀을 채울 값
- 모폴로지 구조 요소 (커널) 생성
cv2.getStructuringElement(shape,ksize,anchor=None) -> retval
- 이진 영상의 침식과 팽창 예제
import sys
import numpy as np
import cv2
src = cv2.imread('circuit.bmp', cv2.IMREAD_GRAYSCALE)
if src is None:
print('Image load failed!')
sys.exit()
se=cv2.getStructuringElement(cv2.MORPH_RECT,(5,3)) #행렬 크기조정을 통해 끊어진 부분을 연결시키거나 할 수 있다
dst1=cv2.erode(src,se)
dst2=cv2.dilate(src,None) #단순 3x3행렬 kernel
cv2.imshow('src',src)
cv2.imshow('dst1',dst1)
cv2.imshow('dst2',dst2)
cv2.waitKey()
cv2.destroyAllWindows()
'Computer Vision > opencv(python)' 카테고리의 다른 글
[44] 6) 레이블링 (0) | 2021.03.23 |
---|---|
[43] 모폴로지(2): 열기와 닫기 (0) | 2021.03.23 |
[41] 3) 지역 이진화 (0) | 2021.03.23 |
[40] 2) 자동 이진화: otsu 방법 (0) | 2021.03.23 |
[39] 7.이진 영상 처리 1) 영상의 이진화 (0) | 2021.03.23 |