흰색으로 나타나는 오브젝트 영역의 형태를 개선하기 위해 사용된다.
쉽게 설명: 노이즈 제거하고, 붙어있는 오브젝트 분리하기 용이
1. Erosion
: 분리과정에서 외곽을 0으로! -> 검정색
: 직관적으로는 검정이 더 커진다~
-> kernel 크기와, Erosion 값을 변화시켜서 조정 가능
: cv.erode(이미지, Kernal, iteration) 사용
ex)
import cv2 as cv
import numpy as np
img = cv.imread('hamster.jpg', cv.IMREAD_GRAYSCALE)
kernel = cv.getStructuringElement(cv.MORPH_RECT, (3, 3))
img_result_1 = cv.erode(img, kernel, iterations=1)
img_result_2 = cv.erode(img, kernel, iterations=2)
cv.imshow('1', img_result_1)
cv.imshow('3', img_result_2)
cv.waitKey(0)
2. Dilation
: 분리과정에서 외곽을 1으로 -> 흰색
: 직관적으로는 흰색 부분이 더 커진다~
비교하니까 확 차이나쥬?
3. Opening
: Erosion 다음에 Dilation 적용
: Eroision을 사용하면, 흰색오브젝트가 작아지므로, 다시 Dilation을 사용해서 흰색 오브젝트 크기 크게!
4. Closing
: Dilation 다음에 Erosion 적용
: 흰색 오브젝트에 있는 작은 검정 구멍들 메우는데 사용!
import cv2 as cv
import numpy as np
img = cv.imread('black_white.jpg', cv.IMREAD_GRAYSCALE)
kernel = cv.getStructuringElement(cv.MORPH_RECT, (15, 15))
img_result_1 = cv.morphologyEx(img, cv.MORPH_CLOSE, kernel)
cv.imshow('1', img)
cv.imshow('3', img_result_1)
cv.waitKey(0)
'OpenCV > Python' 카테고리의 다른 글
에지 검출 (0) | 2021.06.13 |
---|---|
Convolution and Mask (0) | 2021.06.13 |
원근(퍼스펙티브) 변환 (0) | 2021.06.13 |
영역 지정 (내가 헷갈려서 정리..) (0) | 2021.06.13 |
이미지 기하학적 변환 (0) | 2021.06.13 |