'''영상과 마스크의 합성곱
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 |