OpenCV / / 2022. 11. 12. 14:38

OpenCV - 모폴로지 연산

'''영상과 마스크의 합성곱
Open CV 함수

모폴로지 연산

개념

-모폴로지란? 형태 또는 모양에 관한 학문을 의미
영상에서의 모폴로지는 영상에서 객체의 형태 및 구조에 대해 분석하고 처리 하는 기법
수학적 모폴로지라고도 함
그레이스 케일 영상, 이진 영상 모두 적용 가능

*그레이스 케일 <> 이진영상 차이점  : 얼핏 보면 둘다 흑백이라 똑같아 보이지만
이진영상은 블랙 and 화이트만 있는거고, 그레이스 케일은 회색 , 흑색 , 흰색 다 있다 .

-주로 이진 영상에서의 형태 변환에 사용
-구조 요소 이용

구조 요소란 ?
-다양한 형태를 가짐
--> 정방형을 주로 사용

-구조 요소에 따라 형태가 달라짐

구현

모폴로지 연산 함수
- cv2.GETSTRURINGELEMENT(shape,ksize[,ANCHOR])
-->shape : ELEMENT의 모양
-->MORPH_RECT : 사각형
-->MORPH_CROSS : 십자 모양
-->MORPH_ELLIPSE : 타원형 모양
-->ksize : structuring element 사이즈

#각각의 필터 모양 출력해서 확인
'''


import cv2
import numpy as np
import matplotlib.pyplot as plt
kernel = cv2.getStructuringElement(shape=cv2.MORPH_RECT, ksize=(3,3)) # 사각형
kernel_cross = cv2.getStructuringElement(shape=cv2.MORPH_CROSS, ksize=(5,5)) # 십자
kernel_ellipse = cv2.getStructuringElement(shape=cv2.MORPH_ELLIPSE, ksize=(5,5)) # 타원
print('- kernel_rect')
print(kernel)
print('- kernel_cross')
print(kernel_cross)
print('- kernel_ellipse')
print(kernel_ellipse)
plt.style.use('grayscale')
plt.figure(figsize=(12, 4))
ax1 = plt.subplot(131)
ax2 = plt.subplot(132)
ax3 = plt.subplot(133)
ax1.imshow(kernel)
ax2.imshow(kernel_cross)
ax3.imshow(kernel_ellipse)
plt.show()
 
 

'OpenCV' 카테고리의 다른 글

OpenCV Open(오픈), Close , 기타 모폴리지 연산  (0) 2022.11.12
OpenCV - 침식 (ERODE), 팽창 (DILATE)  (0) 2022.11.12
OpenCV - 소벨 필터 적용  (0) 2022.11.12
OpenCV - Compare  (0) 2022.11.07
OpenCV - 영상 기하변환  (0) 2022.11.07
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유